Rewrite freebsdpkg module
Rewrite pkgng module
Update pkg state to work with freebsd jails
Make docstring point to internal docs for remove func
Add new mac user/group modules to toctree
Mask module aliases for freebsdpkg, pkgng modules
Don't fail if `salt._compat` cannot be imported. Refs #7426. Fixes #7425.
Merge pull request #7429 from s0undt3ch/develop

Don't fail if `salt._compat` cannot be imported. Refs #7426. Fixes #7425.
Fix `pep8` `W291` and `E231` issues.

* W291: Trailing white space
* E231: Missing white-space after comma.
Minor formatting changes. Double to single quotes.
Merge pull request #7431 from s0undt3ch/hotfix/lint

Fix `pep8` `W291` and `E231` issues.
Move jinja template files into salt/templates

See #7291. This is the first step.
Properly identify Raspbian
Use debian_service as service provider for Raspbian
Fix traceback in service.py when OS not identified

If the OS was not properly identified, salt/modules/service.py is used
as a fallback provider for the service module/state. However, the way it
looks up the location of the initscripts directory results in a
traceback if the OS grain isn't in the lookup dict.

This commit simplifies the lookup dict and has the module use
/etc/init.d as the location for initscripts if the 'os' grain is not in
the lookup dict, fixing this traceback.
Updated versions for file.replace file.search functions

This is going out with 0.17 instead of 0.17.1.
Shouldn't put a newline there
Merge pull request #7435 from holmboe/rh_ip-templates-dir

Move jinja template files into salt/templates
Merge pull request #7434 from terminalmage/issue7371

Properly identify Raspbian to fix service/pkg support
Fix corruption of files pushed to master with cp.push

salt.master.AESFuncs._file_recv(), which receives the files transmitted
using the cp.push execution function, is executed once for each chunk
received. However, it was opening the filehandle using a 'w' or 'w+'
mode, which always truncates the file. So, when a file that exceeds the
size of the file_buffer_size minion config option (default: 262144
bytes), is pushed to the minion, and is thus sent in more than one
chunk, the file on the master is truncated. The filehandle then seeks to
the offset location of the chunk that was transmitted and writes the
chunk.

With the file being truncated every time a chunk is written, the result
is a file which contains null bytes everywhere but the final chunk,
causing the file to be corrupted.

This commit changes salt.master.AESFuncs._file_recv() so that it opens
the file for appending (instead of writing) if the destination file on
the master exists and the offset is nonzero. Otherwise, the file is
opened for writing.