Handle bad requests better
Rename regex var to be more meaningful
Only handle /images/tiles in TileHandler
Provide *useful* error handling

Replaces http.NotFound with http.Error so we can provide messaging on
a per-issue basis (as well as non-404 errors)

This is primarily to ease debugging, but could be useful for automation
that needs to know precisely what's gone wrong - a malformed URL is very
different from a URL requesting a non-existent asset.
Return higher-quality tiles

These increase bandwidth compared to chronam's server, but they better
match the quality chronam produces.

This should really be a config option....
Simplify handler setup

I dunno, this just looks more straightforward to me
Extract logging into its own file
Rearrange error and tile returns from NewImageTile

As per Go conventions
Flatten tile generation and serving

Gets JPEG creation a bit more separated for easier re-use when thumbnail
generator happens
Move progression level computation into separate file
Extract common JP2 functionality

Creates a new type suitable for holding core data for new services (size
and scaling are both required for producing thumbnails from chronam)
Add handler for returning image size
Add test JP2
Fix log spacing issues
Rename header to image

I thought the structure was a header because we initially populate it
via a call to opj_read_header -- but it also seems to store the decoded
image data
Fix crash / memory spike

- Makes image interaction start at the JP2Image type so we can more
  easily run the finalizer when necessary rather than when the GC runs.
  (Some of the image data is huge, so waiting for GC was resulting in
  500+ megs allocated over 100 or so tile requests)
- Sets structures to nil after deallocation so we don't try to
  deallocate a second time on finalization
Fix JP2Image test
Fix tile test
Return from NewImageTile immediately on error
Fix verifyJP2s

Fixes obj/err positions as well as the need to read JP2 separately from
making a tile