Support encoding images

This adds support for encoding arbitrary bytes of encoded images. Any image format can be supported, but  jpeg and webp is likely the most useful.

Before merging:
 
 - Make image format configurable - currently hardcoded to `jpeg`.
 - Make image resampling algo configurable - currently hardcoded to `bilinear`
 - Reflect on `optional bytes raster = 5;` declaration. Perhaps it should be called `image` or `canvas`?
 - Consider mechanisms for storing arbitrary metadata - exif/tExt or another protobuf field?
 - Try to get mapnik v2.2.0 tests passing