Improve the Makefile

Use static pattern rule for byte compilation, and add the current
directory to the load path
Ignore compiled byte code
Move common code into utility library
Simplify backend loading

We don't need to specify the load directory manually, since the package
directory is added to `load-path` anyway.  Hence we can just try to
require/load all the files directly.
Move common code into a separate library
Remove superfluous defvars
Merge pull request #5 from cask/fix-byte-compilation

[Fix #3] Fix byte compilation