ArrayLoaders: correct bits per pixel calculation

For multi-byte pixel types, the metadata bitPerPixel field was being
used to compute bytes per pixel. However, there is nothing enforcing
byte-aligned bit per pixel values (e.g. you can have a Short pixel type
with 12 bits per pixel).

This was leading to erroneous calculations due to rounding of integer
division.

As the bytes per pixel do not actually define the size of the resultant
array (a short with 12 bits per pixel metadata still comes out with 16
bits per pixel, since it's not possible to create a 12 bit short) the
correct bpp calculation is to use getBitsPerElement.

Updated loaders as needed.