The Quadtree now supports a max depth.
A const Node iterator can now copy a non const iterater, among other things.

Basically the iterator has been sort of simplified, from functions being
const to the removal of equality operators with node pointers.
The vector_cast wrappers are now inline.
Added a function that can grab the pointer from a smart pointer.

Wraps the vector_cast function.
A cache is now used to speed up the Node::children function.

There is still room for improvement though, since multiple caches are
used for the const and non const version, however there *is* a
significant speed up. Who would have thought!
Added an fps count.
The Quadtree now supports a max node depth.
The ball now moves toward the mouse, not in some random direction.
Changed a iterator for loop to a short for loop and added a tad of documentation.
The dumpJSON functions can all now be found in a new serialize.h file.

There are also some new dumpJSON functions for Nodes and Quadtrees.
The PaddleGameState now dumps the Json of the quadtree and obj manager.

They are dumped to separate files.
Added a little sanity check in Quadtree::setObject that speeds things up.

It also causes a segfault sometimes and ball ids can get stuck in the
Quadtree messing with its structure in weird ways. The two bugs are
being looked at.