Add javascriptcore-based widget test

There are various quirks with this method of passing data to the
webview, and there may be some issues with passing data by extending the
webview. Providing action callbacks to the webview (e.g. "reconnect to
mpd" action) may be the only useful way of extending JS with
JavaScriptObject unless these issues are fixed.

It appears that the document object doesn't work properly inside the
callback method. Trying to retrieve an element with
document.getElementById always returns undefined - unless the target
object has been searched for outside the callback. These quirks may be
related to stuff webkit does behind the scenes to improve performance,
as the webview also delays redrawing the widget which may make it appear
a bit laggy unless redraws are forced.

Setting class names on the volume icon also does not appear to work (the
icon always remains hidden regardless of the class names it has).
Refactor widgets to use JavaScriptCore extension callbacks
Fix elapsed update callback for now playing widget
Merge branch 'feature/jscore' into develop