c++ angle axis (rigid body) framework

this is a partial c++ rigid body framework, just enough so that potential calls are entirely in c++.

The only difference from a python users's perspective is you use a different implementation of RBPotentialWrapper.

I implemented a hacky version of a matrix class.  We should think about ways to do this better, or use an existing external implementation.
I just tested this in a real world situation (doing a long basinhopping run) and found no real difference between return by value and return by reference.