Refactor use func

This PR basically does three things:

1) `Application.use()` no longer exists. When you create an Application object, you specify the backend. No more backend-less state.
2) There is no more `app.default_app` because it is initially None, which makes things complicated. Instead, use `app.use_app()` to get the default app instance. 
3) There is now a `vispy.use()` function that acts as a proxy for `app.use_app` and `gloo.gl.use_gl`. 

Some explanation on 3: One can now do e.g. `vispy.use('glfw pyopengl')`. A more interesting example is `use('pyqt4 es2')` in which case the app backend must know that it should use EGL (instead of a desktop context). And later on ... `use('ipython_notebook')` or `use('browser'). This PR thus paves the way (a wee bit) towards use of ES2, Angle and browser-based rendering.



I haven't really followed the PR, but here are a few comments:

* I think it should be `notebook` or `ipynb` or something else, but with *notebook* in it.
*  Eventually, we may want to have the possibility to use a desktop backend in the notebook (i.e. a Qt window would pop up, like in matplotlib when you don't use `inline`).
* For the `inline` mode, we'll want to have:
    * static PNG
    * dynamic PNG backend (requires a live server)
    * online WebGL (streaming GL commands)
    * offline WebGL (fully self-contained widget)