Initial work on prime factorization.

This commit adds spire.math.primes.Factored, a data type representing
the prime factorization of an integer. It also adds three algorithms
for factoring an arbitrary SafeLong:

  1. Trial division (worst)
  2. Wheel division (about x1.5 faster than Trial division)
  3. Pollard Rho (fastest)

We cheat in Pollard Rho and use BigInt#isProbablePrime

None of these algorithms is state-of-the-art and they all do best when
some of the prime factors are small. So the worst-case is when you
have a composite number with two prime factors of roughly equal size.

On my machine using Pollard Rho a 20-digit composite with two 10-digit
prime factors took about 500ms to factor, but a 40-digit with two
20-digit prime factors didn't complete in the time I was willing to
wait.
It would help to add the primes directory to Git.
fix annoying isValidInt bug
Work on optimizing Pollard Rho.
Clean up, refactor, rename Factored to Factors
Bugfixes, additional methods, etc.

Fixed division, modulus bugs. Also added gcd, lcm, and a bunch of
methods taking SafeLong instead of Factors.
Package renaming, and some comments.
Add bitLength and isProbablePrime to SafeLong.
Clean up and resturcture spire.math.prime package.
Add tests, fix some bugs.
Merge remote-tracking branch 'origin/master' into topic/primes2
Merge remote-tracking branch 'origin/master' into topic/primes2
fix sign errors
Fix some bugs with Factor, and improve tests.
add docs and isPrime
Add implicit prime ops, and remove unused Integral methods