VNC backend update
- Add IPython DOMWidget to _ipynb_vnc. Now, backend has its own widget to display.
- Edit setup.py, .js files will appear in build.
- No need to write Js code into notebook for event handling.
Prevent page scrolling on mouse wheel
Move data/vispyjs -> html/static
Examples on ipynb_vnc backend
Move vispy.js to vispy/html/static/js/
Add JavaScript timer
With a JavaScript timer, we will be able to do timer based animations.
Frontend is sending "update" messages within an interval to backend.
TODO: What to do after receiving an update message from front end?
Add timer to canvas
- User can connect a callback to timer and use it in notebok.
- Add new example which uses timer.
- Remove `symlink=true`
Clear interval on close
When destroying the widget, warn the frontend so we can `clearInterval` on JS side when closing.
Add new ipynb_vnc backend examples
+ Send text string of a keycode when sending key events in Javascript
New animation example: Click for fireworks!
Fix ipynb for py3k

The lines for checksum I took from pypng. Not 100% sure though
because the pyvnc does not work for me (neither py3k and py 2.x).
At least no more errors on python3.
Hide the backend widget for the ipynb_vnc backend.

Also some improvements with respect to resizing and polling.
ipynb_vnc: extra comments and made app.run() do nothing
Press_event should be a simplified event
Update examples
- Remove `on_timer`
- Remove `app.process_events()`
- Re-add `vispy_update()` and `timer` event to ipynb_vnc backend
Rename 'TimerEvent' -> 'PollEvent'
- Set `need_draw` to `False` before closing.
- Add Voronoi example
Revert name change (poll -> timer)
Add timer event to canvas from backend
- User has to connect the timer in on_initialize (not in __init__)
- Change interval to 50 (still arbitrary)
Set testable to False
- If widget is closing, don't generate events anymore.
Mandelbrot example isn't laggy anymore