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 we should have the default case to be `false` (not many thing require open statements). For example, record fields don't require them but union cases do. Here is a list of things that require open statements: modules, types, module functions, module values, extension members, union cases.