HTML widgets

Start switching to HTML for widgets to simplify creating new widgets.

This PR doesn't remove the generated JSON files as they may be cached out of sync of the JS.