remove inheritance from apt_package

the dpkg_package provider is not strictly an apt_package provider so
code-sharing via inheritance was broken.

this copypastas some code from apt_package back into dpkg_provider and
does some rearrangement.

future code sharing between these two should be done via mixin or
via composition (e.g. mixin for #run_noninteractive)
fix unit tests
1.8.7 fix?
moar 1.8.7 fixes
Merge pull request #1589 from opscode/lcg/lolinheritance

remove inheritance from apt_package
Revert the provider indirection logic while keeping the timeout functionality to fix resource notifications and ChefSpec stubs.
update html man page help; add knife serve
update chef-shell man page
update chef-client man page
update chef-solo man page
update knife man pages; add knife serve
Merge pull request #1598 from opscode/sersut/chef-1580

Revert the provider indirection logic in Chef::Provider::Package::Apt.
Initial sketch for provider resolver
provider_resolver reboot (JJ Abrams version)
remove old method
remove errant freebsd package provider

I'm not sure how this got picked up in @liseki's commit, I think
it happened when I rebased onto new master.
fix typo
ruby 1.8.7
add some commentary on the interface
move provider_for_action logic to provider_resolver