make update --clean optional 

For testing deploys against different environments, I'm finding it very convenient to not always do a clean update.  This adds the "clean" argument similar to the git module's "force" argument.

These modules stay with git and mercurial's choice to never call anything by the same name, though aliases might be a good idea.

Also added a DOCUMENTATION variable that I've noticed the core modules have (copy/pasted/edited from git).