TISTUD-6113 Appcelerator Studio: JS library causes Studio to hang during index
  - update API to support passing down IProgressMonitors all through the index/inference process and checking for cancellation so a user can actually cancel a long-running index process (rather than just hope it finishes)
  - Cache PropertyElements generated for JSPropertyCollections to avoid a ton of re-calculating inside JSSymbolTypeInferrer#getSymbolPropertyElement(JSPropertyCollection, String, IProgressMonitor).