(#2905) - use readAsBinaryString if available

A profile of [the GIF-loading scenario after the `hex()` problem is fixed](http://bl.ocks.org/nolanlawson/11b1af329e1f8f27fa13) shows that the next most expensive function is `utils.arrayBufferToBinaryString()` (~2.4% self time).  

But that function turns out to be totally unnecessary on every platform except IE,  since those other platforms already have a native `readAsBinaryString`. So we're better off shimming it.