Basic apt-repo management functionality

Added in the core functionality needed to manage apt-based repos.
The only downside is that due to the way apt works, most of the
interfacing requires utilizing the formatted repo_str.  This is
because the formats can vary some depending on specifics.

Support for the format "ppa:<project>/repo" has also been added
provided that the python libraries are installed.

This is all done via the python-bindings for apt, rather than calling
out to the "aptitude" or "apt-get" binaries (since the bindings have
some validation in them).

Minor modification of pkrepo state to detect when repos are already
configured (instead of configuring them every time).  Also improved
"changes" output for modified repos
Merge pull request #3347 from morganfainberg/apt-repo-management

Basic apt-repo management functionality