Initialize the pointer motion cache.

The resolves an uninitialized value warning from valgrind.
Convert wedges to convex in the block demo
Restructured geom handling yet again

It's now possible to create a geom for a solid given a const reference to that
solid. This is valuable for the copy constructor, which is required for the
clone operation to function correctly.
Reimplement the atom copy constructor

This fixes the clone operation.