Clean up of the View API

The `View` API now has the following improvements:

1. Separates the `Template` from the `View`. The template is simply an encapsulation of the HTML/AngularJS template which will be rendered with a context later. The `View` is something which 
takes a template and a context and renders it.
2. The `View` is inherited by `QtView` and `WebAppView`. Both of them have a `start` method which does all of the boilerplate work like instantiating the QApplication and starting the event loop. If someone doesn't want to call the blocking method, they can call the `create_control` public method and embed the obtained widget wherever they want.
3. Examples are updated to reflect the latest API. Each example now also has some descriptive comments about what will happen on the UI when they run it.
4. Two new examples are included:
     - An example to show embedding of jigna widget inside an existing QWidget framework.
     - An example to show model updates finding their way through the web interface.
This is removed because I removed the capability to dynamically update the context. There wasn't a convincing example where that would be useful. Although I do realise that IPython notebook uses it, I think we might do away with it while cleaning up the notebook example.

If I realise that we absolutely do need `update_context`, I will add it back and also add the test.