Add recursive and all-in-one operations to mcv.file

This commit:

1. Adds a recursive option to chmod
2. Adds a recursive option to chown
3. Add a `ch_ext` function which can combine ownership + permssions
   in one idempotent call
4. Updates `mkdir` to use the above.

These come in handy in a variety of situations when we need to
recursively set the ownership + permissions on target directories,
such as when we're deploying.