sqrt: moved lut sqrt into libxt
asm: make fixed point multiply a macro

This will be reused by the quaternion multiplication routine.  We want to
have this available as an inlined macro, rather than incurring the cost of
a function call each time.
quaternion: use existing macros

The existing quaternion assembly was written before some of the nasm helper
macros that could make its life easier.
quaternion: assembly implementation of multiply
quaternion: eliminate a couple loads

This macro interface is getting more ugly by getting some of its parameters
from registers and some from memory, but that's the price you pay for
reducing the number of memory accesses.  I've chosen to keep the same
number of macro parameters, even though %2 is no longer used for
consistency and readability.