BigInt Bug

There was a bug in the big int serialization code which caused integers between the max signed and max unsigned range to throw out of bounds errors. Negative big ints were also not being written properly.

I've added slightly more comprehensive big int support, and included a `writeInt64LE` method to the TrackingBuffer which supports big integers to the same extent Javascript's Number type does.

I also added tests which cover several different ranges of 64-bit integers.

This doesn't add any new features like serializing numbers larger than the JS Number supports, which is probably a good thing to consider in the future.

I'm going to merge this right away, but wanted to post a PR with the details for the record.