[refactor] Simplified DI. Still uses object controller but allows DI and so testing can inject FakeImpl. Also, got rid of Global object. Also, testing is not loading a FakeApplication which is heavy like hell