port bookmarklet to Backbone.js, use gon for params (fixes #4931)

* use Backbone view for bookmarklet, removing inline JS (TODO: mobile version)
* added bookmarklet route to JS router for proper initialization
* added events to the publisher for getting state information without tightly coupling classes
* added `setText` method to publisher, *nomen est omen* (TODO: maybe this can be used elsewhere, too)
* disable the publisher input while Ajax is in progress, only clear when successful
* cleanup some old specs