Initial pass at Layout.js, MultipleDispatchComponent.js, Signals.js, UiComponent.js, ViewController.js. Update Media.js to have the @ui pragma.