Fix byte compiler fuckup

This PR merges all epl files back into a single one.  It doesn't attempt to determine the package.el variant at load time anymore.  Instead each function checks for the underlying API separately at runtime.

This might be a little bit slower, but it avoids a lot of trouble with the byte compiler (e.g. wrong macro expansions, warnings about undefined functions, etc.), and is easier to follow, since the whole code is now in a single file again.

I didn't test on a stable Emacs, but since I just copied the legacy code, it should work.  I think we should merge it now.  If it breaks, someone will complain early enough.

Also, we really should start writing tests, and go for Travis CI, and then we'll notice any breakage introduced here anyway.