Remove circular dependencies

Fixed all require.js circular dependencies in the TAL codebase, in particular those between Widget, Application and Component. Introduced a new, private RuntimeContext class to facilitate this.