add doctests, fix long undiscovered bug: rotXyzAbout{X,Y,Z} has been rotating in the wrong direction
use data types from `linear`, closes #1