TISTUD-5812 New platform shortcuts are not loaded after adding the platform in the TiApp

- Allow programmatically adding/removing project listeners
- Hide manager class behind interface, access through plugin so it can manage cleanup on plugin shutdown, rather than using global singleton.
- Lazily instantiate listeners when necessary rather than upfront to avoid unnecessarily instantiating plugins.