Renamed LineRangeVisited to NormalizedLineRangeCollection

The new name is more in line with other editor style collections
Cleaned up the unit tests
NormalizedLineRangeCollection supports more efficient inserts

This changed the insert algorithm for NormalizedLineRangeCollection to
be much more efficient.  It avoids a lot of unneeded copies and in many
cases can have an O(1) insert behavior.

There are still cases where it drops to O(N) but those should be rarer.
New mapping option in place
Efficient GetTags code

The GetTags code no longer tries to process Tag values for the
overarching span provided to GetTags.  Instead it focuses on the actual
SnapshotSpan values that were provided in the collection.  This will
increase efficiency in places where we have collapsed regions or
projection buffers (most common cases for this)
Few more small updates