Added quaternion support

quaternion math enabled with basic value checking
added cross_product and some documentation
Implemented change of basis

use Quaternions to define change of basis. If the change in basis is
very small, automatically chooses a reference frame 45 degrees out of
phase with inertial frame to to improve accuracy of the cross product
calculations.
Fixed bug with basis generation
Tried to restructure files

Moved all the module files to lib, not really sure how modules work
right now. Will come back to this later
Done  for the day

Saving progress.
typo
Merge pull request #3 from YetAnotherMinion/master

Code cleaned up and better organized.