Complete refactor of widget templating

Not finished yet, XBMC kill not yet functional.
Widget generation is completely controlled by handlebars templates now.
Widget layout is much more general and no longer tied to a strict
hierarchy. Also, everything's a bit more complicated for good measure.
Switched to controller based system for widgets

Instead of the device code manipulating the DOM directly, each widget
has a controller that handles that, and the device code interacts with
them instead. Finally fixes the kill action.