removing some memoization that we don't need and making some instance variables static
re-adding bundleset memoization since it doesnt benefit much to remove it
re-adding caching of TrieBasedDependency calculator to SourceModules
moving source module resolver logic into BundlableNode
caching requirePath in SourceModules
backing out some static variable changes since it seems that accessing statics is slower than instance variables
using LinkedList for TrieNode references instead of a Map
refactor Trie to have different classes for root, trunk and leaf nodes
removing the need for multiple trie keys to be added for each class
optimising Trie for memory usage and performance after populating it