Package restructure and API updates.

This commit moves methods from the spire.math.fun objedct into the
spire.math package object. Previously package objects were a bit too
broken to use. Here's hoping that they will work out moving forward.

Other small changes include efficiency improvements to SafeLong's
comparison methods, removing some unsavory implicits from UByte-ULong,
and some other improvements.
add bit-shifting to SafeLong
clean up imports
add missing operators to SafeLong
update Rational with changes to SafeLong/spire.math