WIP 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. I need to figure out a way to make it so that tests that don't require a backend *don't* run during the backend tests. I don't know how to do this without decorating *all* of the tests, which seems less than ideal (but not too difficult). One can now do:

```Bash
$ make qt  # runs tests using qt
$ make nose  # runs tests using all backends
$ make test  # runs all tests (incl. flake, lineendings)
```
Similarly, in Python one can now do:
```
>>> import vispy
>>> vispy.test('qt')
>>> vispy.test('nose')
>>> vispy.test()  # i.e., test('full')
```
Still WIP, because I need to see how it works on my OSX machine, and how Travis feels.