[WIP] refactor: Drop the Controller directive

closes #919
closes #917

It is possible to define the context of the root scope with:

```
applicationFactory()
..rootContextType(RootContext)
..run();
```

The RootContext need not be annotated with a directive.

Replaces #959

TODO:
- [ ] Add missing tests (ContextLocals + a few missing tests I've spotted) 
- [ ] fix xited tests
- [ ] check the SVG use case from #959