Package now uses the adapter pattern for packages

This simplifies the definition of package_types.
Brew uses new package API
Rpm uses new package API
Added missing/better #installed? specs
Deb uses new package API
Changed order of #update method
Fixed #package_name renaming
Fixed outdated docs
Added docs for PT::Base
Added guard-yard
Updated docs for Brew
Updated docs for Deb
Updated docs for Rpm
Fixed return type for #adapter
Refactored PackageManager to follow adapter pattern
Moved notifier logic for #upgrade_packages to package_manager

Now adapter PMs only have to run their shell command.
Added local work cheater
Fixed PM creation to use new initializer
Convenience method for package_manager
PM can set the bin_path on the adapter.