Package.el compatibility layer

Introduce an abstraction layer around package.el, to make it work the same in Emacs 23, and throughout the whole Emacs 24.x series.