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.