Fixes #11966, clearer interface for files.copy

* adds recurse flag (required when copying directories)
* adds (merge|remove)_existing, to choose whether to keep existing files, or delete the target directory entirely.
Merge pull request #11887 from makinacorpus/fl

Fix filelisting infinite loops
Merge pull request #11921 from mtorromeo/systemd-units

Better handling of systemd parametrised and other special units not listed by list-unit-files.
Merge pull request #11928 from jcsp/fix-aes-reauth

Detect AES key changes in _fire_master
Merge pull request #11929 from cachedout/11918

Fix compound matching with parens.
Merge pull request #11963 from garethgreenaway/develop

Additions to yumpkg.py, aptpkg.py and pkg.py
Merge pull request #11965 from terminalmage/issue11517

Allow minion_id to be specified for certain match functions
modifying behaviour to reduce arguments
Merge pull request #11967 from borgstrom/pyobject_imports

Allow for "imports" within pyobjects files
Merge pull request #11971 from holmboe/finally-umask

Use finally clause for setting back umask
Merge pull request #11975 from techhat/genesis

New system bootstrap code
Merge pull request #11976 from cachedout/nodegroups_doc

Add note about master restart per nodegroups.
Merge pull request #11977 from simonfrid/feature/log_minion_pid

logging process id
Merge pull request #11984 from terminalmage/issue11889

Use /usr/local/etc/salt as fallback CONFIG_DIR only on FreeBSD
Merge pull request #11985 from toumorokoshi/specialCopy

Fixes #11966, clearer interface for files.copy
fixes #1192.

* Adding config file option for salt master configuration
Merge pull request #11987 from toumorokoshi/showtimeout

Add show_timeout option to master config
new parameter: 'registry' for NPM module
Fix traceback in docker.running state

This improves error reporting when invalidly-formatted input is
submitted from the docker.running state to the docker.start execution
fucntion.
Fix indentation error in hold_pkg logic