WIP ENH: Better app consistency

Implements (better) testing of:

1. mulitple windows
2. timers
3. glut

Some things still need to be fixed:

1. There is a failing `glfw` test because it doesn't handle paint events the same way as other backends.
2. glut causes segfaults when `nose` exits. This isn't unique to our tests -- even just these four lines cause a segfault when I run `python test.py` from the command line:
```Python
from vispy.app import Application, Canvas
a = Application()
a.use('glut')
Canvas(app=a, size=(100, 100))
```
3. There is an error in Pyglet testing, even though I didn't change those lines. I think it has to do with the context not being set properly. @almarklein maybe you can have a look?