SourceCodeClassifier marks unused open declarations

![image](https://cloud.githubusercontent.com/assets/873919/3530402/235c77fe-07a4-11e4-92f4-95802ae5e057.png)

I will add tests but it basically works. 
I thought if we sort symbol uses belonging to the same long identifier by their end positions (they could already be sorted by grouping), you can always take the last symbol use to represent them all. There are exceptions for extension members; you should take last two symbol uses.

At any rate, you can sort symbol uses as above and compare them in linear time instead of quadratic.