Use responseType ‘arraybuffer’ for all XHR requests

Everything that is not binary is converted to string (in Node via Buffer, in Browser via Blob).

This fixes #636.

This PR replaces #715 and is ready for review.