Reworked install_source package handling

This changes the handling of the install_source to be more robust and
idempotent. It retrieves the package via wget and keeps the package in a
known location.  It then uses the Puppet package type with an rpm or
dpkg provider to install the local package.  This means that Puppet will
handle upgrades and checking for installation automatically.

Without this patch, we frequently ran into problems where the
puppet_manage_package script would be run, but fail for some reason.
Since it was a refreshonly exec, it would never be run again, and then
it would fall through and attempt to install the package via apt.  This
would lead to very confusing debugging sessions, since most people
didn't know it shouldn't be installed via apt anyway.