Use stream marking for inSampleSize decoding of HTTP.

Since HTTP streams can only be read once we were previously unable to do inSampleSize decoding on them. Using a stream that supports marking we can buffer the header read. The stream is then reset so that the full image can be decoded.

Closes #12.