Allow for pluggable image handlers

This commit does two things, it move recognition for if an image class
can support a given image into that class, and will attempt to find an
image handler for any given image among any class defined inside the
Prawn::Images module.

This makes it easier to add support for additional image formats
without directly modifying the prawn core library.
Require image handlers to register themselves

I added Prawn::Images.add_image_handler so code can tell prawn
explicitly what classes to try to use when searching for an image
handler for a given image.

We automaticlly load our PNG and JPG handlers for backwards
compatability.
Merge branch 'master' of github.com:prawnpdf/prawn into pluggable-images
Use updated ImageHandler class API

After talking with @sandal on IRC we revised the API for managing image
handlers. This commit reflects the decisions
in that discussion.
Re-Add wrongly removed image specs
Merge branch 'pluggable-images' of https://github.com/packetmonkey/prawn into pluggable-images
Make into a regular class for easier testing, with a singleton factory method
Return handler object rather than instance, and clean up tests
Merge branch 'pluggable-images' of github.com:prawnpdf/prawn