TISTUD-6654 Studio: Large projects (450mb) take a very long time (estimated 90+ minutes) to index

There are multiple stages in indexing the JS file and some of the important ones that do quite a bit processing for larger JS files are : grab globals, retrieve scope properties, processing lambdas, and process module exports.

Grabbing the scope properties and processing module exports take quite a chunk amount of time in parsing through the JS file again (and again). Both of these phases use the symbol type inferrer to visit various nodes of the JS file. I tried to bump up the performance by using the inferrer instance against both these phases and there by we used the existing caching at most of the instances, instead of rebuilding the objects.

This helps to improve the performance quite a bit (by reducing the processing time of module exports API).