(WIP) Majority of changes to build Timeline (now Ctrl) based apps from new MVC markup structure, and run said apps.

Expect a few more minor problems with pointer focus, and class member refs and method calls in App, View and Ctrl. Also Journals need to be confirmed working.

NullView may be better off being base class functionality in View.
-No more View.input(); input information to now be extracted from View and used by Ctrl; this allows for improved, task-linear code flows
-No more Ctrl.output()
-Focus passed in as the View for Ctrl.input() at App level
-View.outputRecurse() returned to App.update() (as in legacy Phase.update())
Merged Updater logic into Ctrl.
Journalling updates carried out after first simulate, thus allowing .changed() to work between start() and first simulate().
Support injection of Model into Service declarations in markup/config.
Views and Ctrls have access to Models by constructor injection.
Views and Ctrls methods have had parameter lists cleaned up (mostly).
Ctrl.getChildById -> .getChildByClassName.
View.input reinstated for use only where Views always do specialised input processing (i.e. for complex controls).
Fixed Builder.getModelFromPathString() to work when only "." (root) is specified as the Model attribute on an element.
Services moved to allow for Model injection yet to be available before Views and Ctrls for access in their contstructors.
Renamed JournalKeeper.updateJournals() -> regulateJournals() for regulated Journals. These do not allow more than a single update() (previously set()) per App.update().

Fixes #49, #42.

Other minor cleanups / additions.

Ready to merge to mainline.
Merge pull request #57 from ArcaneIngenuity/Timelined

Timelined