Support for the crazy Nikon subformats in the D800, D810 and D4s

This adds support for a couple of quirky formats in the D800 and D810:

  * D800 now has the correct whitepoint on 14bit uncompressed images (it was clipping before)
  * sNEF (similar to Canon sRAW) giving a RGB image. Here I added a new flag to RawImage to specify that the image already has WB applied
  * D810 14bit uncompressed images just needed a hint in cameras.xml
  * D810 12bit uncompressed images are now properly detected. Annoyingly there seems to be a bug in the firmware and these are being reported as compressed images. The fix is reasonably sane, just check that the image size is reported as width*height*12bit, instead of relying on the Compression field 
  * D800 cropped images are now properly detected by specifying the resolution in the mode, so that we can apply crops only to full-frame images and not to images that have already been cropped and thus have no garbage data in the borders
  * All the modes of the D4s, which seems pretty similar to the D810

I also fixed a bug in the uncompressed handling where if the last slice was incomplete (because nslices*yPerSlice > height) we would still allocate space for the full slice even though we decoded partially. This resulted in black rows at the bottom of the image.
Note to self: Convert this to fixed-point.