Make PPA handling in apt-repo more robust

Take in the changes provided by ahammond and move them to the apt.py
module out of the pkgrepo state itself.

I've also included some changes that should make get_repo a bit
better and updates to better handle PPA style formatted names
in .absent calls

To avoid some odditiies any repo changes (add, delete, mod) will
do an explicit db_refresh()
PPA-Update

Modifications after testing of previous PPA-UPDATE da7500bab6d0932011b4cb72c61e05828f286f3d
Fixing a bad-index for the format string

LP_SRC_FORMAT string had bad format replacements in it.  .format
is zero indexed.
Add tests for states.svn. Ensure svn.latest includes changes in return
Updating the output format for ping calls

A default installation no longer has JSON-style output
Merge pull request #4120 from morganfainberg/ppa-update

PPA update
modify content error, "vm.swappines" to "vm.swappiness"
Merge pull request #4125 from UtahDave/develop

Remove  ipv6 and ipv4 stuff
Fix regex in _get_upgradable

We're not using the data after the version number in the apt-get output,
so don't bother trying to write an elaborate regex for parts of the
string about which we don't care. Fixes #4107.

Also made some pep8 fixes to make pylint happy.
Merge pull request #4128 from terminalmage/issue4107

Fix regex in _get_upgradable
Merge pull request #4126 from pengyao/develop

modify content error, "vm.swappines" to "vm.swappiness"
Add versions_as_list kwarg to version, list_pkgs

This commit adds the ability to optionally get the version information
in a list as opposed to a string. All package providers have been
updated with this (even though very few providers actually support
multiple versions of the same package), so as not to break pkg states.

Reference: https://github.com/saltstack/salt/issues/2783#issuecomment-14011820
Make versions_as_list default to False in list_pkgs

Accidently had this set to True for a few of the providers.
Fix pkgutil bugs in version, available_version
Make available_version support arbitrary args

This will avoid tracebacks in pkg states
Merge pull request #4123 from jsdalton/svn_latest_should_report_changes

Add tests for states.svn. Ensure svn.latest includes changes in return
Merge pull request #4124 from jer/patch-1

Updating the output format for ping calls
Merge pull request #4112 from terminalmage/issue2783

Add versions_as_list kwarg to version, list_pkgs
Use localectl to set keyboard layout on Arch Linux

Fixes #4062.
Merge pull request #4129 from terminalmage/issue4062

Use localectl to set keyboard layout on Arch Linux