Merge branch 'cleanup'
Add support for custom input formats

This adds an InputFormatProxy along the same lines as the other proxies.

Unfortunately, I couldn’t really figure out how to write a meaningful
unit test, so I implemented a (rather contrived) custom input format in
the integration tests to at least make sure the code runs.

A limitation is that the splits returned from the input format must be
standard Hadoop splits, as any input split must be serialisable and
that would require a significant amount of code.
Rename getInstance to wrapInstance
Dynamically get JobContext configuration

As JobContext changed from class to interface between Hadoop 1 and 2,
we get an IncompatibleClassChangeError if we try to use the proxy class
compiled to either of the versions with the runtime of the other.

By getting the configuration method dynamically, we ensure that you can
compile the proxy class with either Hadoop version, and independent of
version used, it should still work together with either runtime.