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. 
This part is a little involved.

If you construct a map `Map<Range.pos, Idents>` from the last column of a range to its long identifiers. You can simplify this part significantly by (1) looking up the long identifier (2) grouping symbol uses by the long identifier (3) treating some special case e.g. keeping both extension member symbol use and type in the results.

You can construct that mapping in `getLongIdents` because LongIdentWithDots consists of all sub ranges inside. The map is bigger because a long identifier is replicated several times, but the code should be easier to write/read.