Render blocklist client-side. Improve hash routes.

Block list is rendered client-side, since the data is sent to the client as JSON
anyway.

The location hash can now set state for all controls. It takes the form
    :block_id/:search_term/:flags
search_term is URI-encoded
flags is any of ['b', 'w'], meaning block-only and WGL4-only, respectively.