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 think when you deduplicate the idents using Set, you lose the order of identifiers. Order of open statements matters, but we haven't been precise in constructing the list of idents.  For now, perhaps using List deduplication without altering ordering is good enough.