General Apt-Sources fixes

These are some sanitization fixes to help make apt-sources
management better.  The basic principal is to not "configure" the
source if the source already exists.

Some format validation for PPA expansion added.
Fixes for empty sources list and strip on "line"

For matching purposes (repo configured) the "line" property needs
an explicit strip() called as it can end up with a \n in the line
itself.

Empty sources error was due to an erroneous check to see if we had
any repos (assumption was made we had some).  Since this not always
true, the superflous check has been eliminated.
We want sorted configuration files inclusion.

We want sorted includes so we can define the inclusion order by prefixing the filenames with numbers.
Merge pull request #4473 from s0undt3ch/develop

We want sorted configuration files inclusion.
Fix #4474

Still needs testing
Add name option to minionswarm so many hosts can check in
Add usermod option to shadow.set_password (fixes #3655)
Merge pull request #4475 from basepi/shadow3655

Add usermod option to shadow.set_password (fixes #3655)
Fix #4319

The master server's key is reset when the master is restarted, the
syndic needs to detect this authentecation change and refresh the
local auth key
Fix client fault in syndic caused by raw returns being sent

At the wrong times from older minions
Fix bad ref from double del()
Fix quick typo
Add blurb about template inheritance and search path
Small PEP8 fixes
Add salt.utils.parse_docstring()

Currently only parses out dependencies, for use in
required_module_list().  Can be added to later as needed
Use parse_docstring in required_module_list (fixes #3727)

Should now work for the previous 'Required python modules: ' method, and
the RST ':depends:' method.

Does not parse ':optdepends:' as of yet, as that's not currently needed
Merge pull request #4478 from hank-at-code42/inheritance_doc

Add blurb about template inheritance and search path
Merge pull request #4480 from basepi/docstrparse

Add salt.utils.parse_docstring() to parse dependencies out of docstrings
Fix stop/start and add plist support to launchctl module.

All plists have to be read on first access as we don't know
if all the labels in a plist file match its filename. Not all
plist files are XML, some are binary, maybe even JSON. Thankfully
we have the plutil tool provided by the system for doing conversions.

Launchctl `stop` is not the same as stop on most systems. It will
kill the process, however most services will start up again as it's
very common for a service to have both `RunAtLoad` and `KeepAlive` set
in the services plist file.

Similiarly, `start` start will only start a service that has
previously been loaded without the `RunAtLoad` key in the service plist.
The man page for `launchctl` also notes that expected usage of `start`
is for debugging and testing.

These changes do not find per-user `~/Library/LaunchAgents` services
at the current time.
Corrected syntax error in include example for python-libs.

Changed

include:
  - python-libs

to

include:
  - python.python-libs