Optimizations to StdReader, focused around Get

Removed ~75% of the instructions in Std::Get by caching the position and
only calling seekg as a last resort.

BEFORE:
|StdReader::Get> search StdReader::Get(long) const
 --> BinaryReader::Get() const/StdReader::Get(long) const : 319002939 / 783791 (407)
     BinaryReader::Get() const/StdReader::Get(long) const : 8333327 / 20475 (407)
     BinaryReader::Get() const/StdReader::Get(long) const : 18353260 / 45094 (407)
There are 2 more results

AFTER:
|StdReader::Get> next
     BinaryReader::Get() const/StdReader::Get(long) const : 70635280 / 793892 (88)
 --> BinaryReader::Get() const/StdReader::Get(long) const : 2633902 / 21137 (124)
     BinaryReader::Get() const/StdReader::Get(long) const : 5006758 / 46283 (108)
There are 1 more results