Make sure byte position for invalid JSON is consistent and the exception message is accurate (dotnet/corefx#40349)
* Add tests for reading numbers when data is within a multi-segment
ReadOnlySequence.
* Test rename and add debug.assert.
* Test clean up - remove unnecessary/expensive Debug.Assert.
* Test and code cleanup.
* Address feedback - add stronger test condition for token length.
* Revert state on incomplete read and on error. Make sure exception
message is accurate.
* Fix byte position in line for invalid JSON and update tests.
* Address feedback - pass by in and move private struct to end.
* Fix string consumption and add various tests.
* Fix off-by-one error when calculating position.
* Test clean up - make sure multi-segment tests are in the right file.
* Update string parsing - do not increment line number for escaped newline
chars within quoted strings.
* Remove unnecessary custom state struct for string and re-use the same
one for both string and numbers.
* Update tests based on PR feedback.
* Create helper to get start sequence position from roll back state.
Commit migrated from https://github.com/dotnet/corefx/commit/
a690f1658cdc4d92936bd709e644074b2e2e288e