PPA update

I've tested these changes locally, they all seem to work.  I would not be opposed to someone else taking a look.  

This is shuffling some stuff around to keep pkgrepo state as "clean" as possible and the majority of the logic in the apt.py module.

This also means we _should_ be able to support private PPAs.

I did some pep8 cleanup as well.