[COOK-3246] Create subdirs when necessary

Some services, such as byobu have a directory structure (usually just a
`~/.byobu` ).  This commit allows for the creation of the directory if it
does not exist.
[COOK-3426] Make suggested improvements
feedmagnet/deployment#1628

* Reorganized json structure to describe files, rather than a deeper
heirachy and use a type system to distinguish between files and
templates
* Rename custom_env to custom_files as more descriptive
* Update documentation
Merge branch 'allow_users' into custom_env

Conflicts:
	providers/manage.rb