ENH: Make backend tests independent

This makes it so that each backend runs the full set of tests. The full set of tests takes ~1 minute on my machine. One can now do:

```Bash
$ make qt  # runs tests using qt
$ make nobackend  # run tests that don't require a backend
$ make nose  # runs tests using all backends, plus those that don't require one
$ make test  # runs all tests (incl. flake, lineendings)
```
Similarly, in Python one can now do:
```
>>> import vispy
>>> vispy.test('qt')
>>> vispy.test('nobackend')
>>> vispy.test('nose')
>>> vispy.test()  # i.e., test('full')
```
I also added `vispy.ext` to store our externals.