Initial landing of multi-line multi-select highlighting

So this works if you're nice to it. There are some missing pieces. For example, ctrl-click to remove a line from the URL hash if it is part of a range and recalculating the range into two separate ones. Very hard. 

Same with shift clicking across a range of single and ranged highlighted lines. It doesn't update the URL to remove everything that is contained by the new containing range.

But generally I think it will work predictably based on not too crazy selection patterns with the UI. The location bar detection is also pretty reasonable and allows specifying ranges and single lines, which you can then add to via the UI after the page loads.

Thoughts? It'll need some more polish I expect, but wanted to get something out to test before spending too much more time on it and making it too complex to adapt to any missing types of interactions.