Update to the PKGREPO apt functions in apt module

* URI is was not really a functional feature since
  the uri was the element that the pkgrepo functions
  used as a base for matching internally.  it is essentially
  a new source definition if the URI changes, so the best
  bet is to .absent the repo and add a new one.

* added in ability to manage repo keys to the APT .managed module
  and by nature of how .manage calls apt.mod_repo, the pkg.mod_repo
  can also now add GPG keys for the apt repositories

* added "consolidate" option.  This will smash down the apt repositories
  into as few lines as possible.  It should do some basic cleanup.  This
  function helps (when enabled) to ensure that salt doesn't miss a repo
  when it's not the "first" matched in the .get_repo function for a
  .managed state.

* changed pkgrepo to watch for exceptions from .mod_repo so that if
  there is an error (exception) that is raised (intentionally or
  unintentionally) the error is displayed to the user.

* updated documentation for apt pkgrepo to reflect these changes
Merge pull request #3463 from morganfainberg/pkgrepo-apt-update

Update to the pkgrepo apt functions in apt module