Reference tests for BMP format

Includes #438 from @eddwardo.

* This PR has all of the images from the Bmpsuite (https://github.com/jsummers/bmpsuite) test images. The bmpsuite images are in the public domain. 
  * Good images are parsed correctly, with three exceptions for unsupported compression or bit layouts. 
  * Bad or questionable images don't crash or DOS the machine. 

* There's one fix for abnormally large palette sizes taking gigabytes. 
* Support for basic version 4 and 5 BMPs (108 and 124 byte headers) is included. No special features are decoded. 

The sticking point from the previous patch is apparently RLE compression in version 4 headers. We still don't support that, but I don't see a reason not to include those versions for the other encodings that we do support.