Made some data classes use double instead of float

Added Axis, but it's just a compatibility class at the moment and needs
to be fleshed out (rotate-around-axis methods, etc).