Tried @rougier's suggestion to fix the bug.
Fixed fix.
app: detect possible mixup of PyQt4 and PySide usage.

Mixing the two may lead to unpredicatable sitations. e.g. I
see segfaults on closing on Linux, but on other systems other
effects may take place.
Got rid of ctypes in the fix.
app: handle potential PySide PyQt4 mixup better.

Now we do not allow using one as a backend when the other is imported.
app: cleaning qt-mixup-prevention and fix tests and pep8
tests: vispy.testing is not imported by default

Also made `python make test` print the test options rather than
run all tests. To run all tests, do `python make test full`.
app: pyside and pyqt4 are now more normal backends. qt is no backend.

This makes it that qt/pyside/pyqt4 has less of a special status, except
for that most code for both backends is shared.

It is now actually possible to use both backends at the same time.
Previously it seemed that this was possible, but you'd get whatever
was selected the first time that _qt was loaded. Of course, it not
recommended to use both at the same time, but our tests seem to need
it, and so does sys_info().

Also, when auto-selecting a backend, vispy prefers backends for which the
GUI toolkit is already loaded (this was already the case). If such a
backend could *not* be used, a warning is issued.
Merge pull request #261 from almarklein/test-func

vispy.testing is not imported by default
app: prefer pyat4 over pyside. Also some docs.
Merge pull request #259 from almarklein/app-detect-qt-mixup

app: detect possible mixup of PyQt4 and PySide usage.
Squashed commit of the following:

commit 063f73f2482c911b26bf151c90fce433db5d7741
Merge: 241b2df 810ea57
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Wed Apr 23 12:38:54 2014 -0400

    Merge remote-tracking branch 'vispy/master' into paint_to_draw

    Conflicts:
    	examples/howto/display-lines.py
    	examples/howto/display-shape.py
    	examples/howto/rotate-cube.py
    	examples/howto/start.py

commit 241b2dfe69fc47cb97ea50042dd37b4d77f1ee91
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Wed Apr 23 12:02:33 2014 -0400

    paint => draw in doc/ and examples/

commit 8a73b8e4594c1149e82335296903f3962fc3384c
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Wed Apr 23 09:28:18 2014 -0400

    style

commit ab79ff377166b6a8cd091361051ae71eb4ce7722
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Wed Apr 23 09:25:37 2014 -0400

    Replace Paint with Draw

commit f7583dc4a3102f6c6e353c47968d554cc18e9233
Author: Luke Campagnola <luke.campagnola@gmail.com>
Date:   Wed Apr 23 07:43:14 2014 -0400

    Replaced all occurrences of 'paint' with 'draw'
Added deprecation warning for Canvas.on_paint
Alterative method for deprecating Canvas.events.paint; should catch more cases.
Also rearranged Canvas.__init__ to avoid exception in Canvas.__repr__
style and test coorections
FIX: Minor fixes to branch, rebase
FIX: Fix test
Merge pull request #262 from Eric89GXL/paint_to_draw

FIX: Paint to draw
Merge pull request #254 from vispy/bug-multiple-programs

Tried @rougier's suggestion to fix the bug.
Add start_shaders script.