ENH: Better app consistency

Implements (better) testing of:

1. mulitple windows
2. timers
3. glut

Some things still need to be fixed:

1. glut multi-window test doesn't work on Travis, even though it works on my machine. Not sure why.
2. ~~glfw is segfaulting. I also get errors on pyglet sometimes when I run the tests. I think it has to do with not ensuring that the context is set appropriately in all situations.~~
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?~~
4. ~~There is a failing `glfw` test because it doesn't handle paint events the same way as other backends.~~
5. ~~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))
```

Closes #215.
Closes #188.