Brjs constructor refactor and adding Java7FileModificationService event observer

Refactoring BRJS constructor so it's package private, every class must now go through either a static model accessor or test model accessor to get hold of a BRJS instance. This helps guarantee we only have a single model instance.
Adding a Java7FileModificationService model event listener so new nodes are picked up instantly rather than after a short period of time.

@james-shaw-turner can you do a quick review if you have time and make sure it doesn't have any negative performance effects?