Add Emacs 23 support

When this patch is applied, carton has its own copy of package.el as carton-package.el.  When there is no package named pakcage.el, it is loaded.  The reason why it has different name is that to avoid loading carton copy of package.el when the root directory is added to `load-path`.  We can have another directory for package.el and add it to `load-path`, but I think the current solution is better since it does not alter `load-path`, especially because package.el is just one file.

As mocker.el cannot be installed, I added a simple smoke test.