Created Scaler module.

Closes #1
Added demo executable target.
Encoder now uses the Scaler module.
Decoder now uses the Scaler module.
Generalized toJuicy conversions.

Added MaybeT wrappings of things that return an IO Maybe value. This
makes it somewhat easier to compose such things.

Closes #2
Added travis-ci configuration.
Constant name compatibility file.

I look for the nonexistence of a pixel format definition that only
occurs in newer versions to trigger the inclusion of a file that defines
new names as the older versions.

This check is fragile, but the build with an old library probably won't
work anyway due to FFI imports failing to link. However, these name
definitions at least allow the Haskell library to compile, which is a
useful sanity check with something like Travis-CI.

Note that a warning is printed when we expect the build to be useless.
Slight generalization to Encode.

Don't hard code the pixel format in so many places. In the future, we'd
like to sort out an appropriate output pixel format in one place, then
convert to that later.