Create a framework for managing user interface components in iframes

This is the result of [this conversation](https://github.com/philc/vimium/pull/1382#issuecomment-68214559) between @smblott-github and I on #1382. It creates `UIComponent` in the frontend and `UIComponentServer` (provided by `pages/ui_component_server.coffee`) for the iframe(s).

This also includes an example (provided by commit d20caa49075c0605ec2196416a5633d5e205b615). The example
* opens/closes with the help dialog.
* refreshes its contents every time it is opened, showing
  - the current vimium version (as requested by Stephen), and
  - a random number (to confirm that the contents have been refreshed on each reveal).

@smblott-github, can you take a look over this?
No, only when `retVal` was `null` or `undefined`. This is supposed to handle the case where the listener doesn't return a value.