Fix removing a child from a node.

Parent setter was always expecting new parent
to not be None.
Update Pyrr version.

Fixes some matrix / vector maths and adds
some new methods.
Trivial changes to sort.

Return numpy.zeros( 0 ) for invalid sort.
Although it's the same, it's just nicer in my opinion.
Improve the comment.
Simplify the tree_node parent setter.
Improve some comments and remove temp variable.
Refactor GL module and viewport / window.

Move some functions out of window and into viewport.
This is where they were really being used anyway.
Add some get_X functions in viewport.
Add some extra gl print functions.
Add GL profile detection logic.
Move utility classes out of the gl __init__ modules
and into utility modules.
Update examples to latest code.
Update scene node test to test translation.

An issue was found recently where applying a matrix
to a vector wasn't applying the matrices translation.
A test has been added to catch this.