Add BinaryReader::readFromHandle function

Adds function to read a set number of bytes from the inputHandle
and updates the internal position of the binary reader. Replaces `fread`
and `setPosition` calls in `Type` classes for increased performance.
Optimise isEof
Add canReadBytes function
Create readers on __construct, rather than lazily
Replace getEndian calls with direct access
Add tests for code coverage
Merge pull request #7 from jwpage/br_read

Speed Optimisations