BufferListReader class fixes and tests

Here is a work in progress. It should be good enough to merge in.  I fixed issues with reading integers not coming out correctly in certain cases.  Add 92 unit tests. Added a public long Position property to help users know or set where they are in the string.  Note set position is not implemented.  I also removed the m_position field as it added too much complexity and confusion with m_CurrentSegmentOffset and m_CurrentSegmentIndex.

* Skip(int) does not work like LINQ.  In LINQ if you Skip past the number of elements in the collection it just goes to the end.
* Take(int) - didn't work on that.  I think it should behave just like LINQ does, but not sure it does.