Unused declarations optimization

* create a `Map<projectFileName, Map<fullSymbolName, symbolUsagesCount>>`, then use it to determine whether a symbol unused. 

It decrease "slow" stage time (excluding `ParseAndCheckProject`) on `service.fs` from FCS solution from 58 seconds to 17 seconds. 
Can this be simplified with the maybe { } monad?