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.