Add the mersenne package

The first naive/most simple implementation of FromFactor. Estimated
performance is in O(n^2) or worse.

$ go test -bench B
PASS
BenchmarkNew_1e1	 5000000	       412 ns/op
BenchmarkNew_1e2	 5000000	       439 ns/op
BenchmarkNew_1e3	 5000000	       516 ns/op
BenchmarkNew_1e4	 1000000	      1137 ns/op
BenchmarkNew_1e5	  500000	      6508 ns/op
BenchmarkNew_1e6	   50000	     61942 ns/op
BenchmarkNew_1e7	    5000	    582636 ns/op
BenchmarkNew_1e8	     200	   9011665 ns/op
BenchmarkHasFactorUint32Rnd	 5000000	       691 ns/op
--- BENCH: BenchmarkHasFactorUint32Rnd
	all_test.go:318: Random 32 bit factor, random 32 bit exponent

BenchmarkHasFactorUint64Rnd	  100000	     27123 ns/op
--- BENCH: BenchmarkHasFactorUint64Rnd
	all_test.go:344: Random 64 bit factor, random 32 bit exponent

BenchmarkHasFactorBigIntRnd_128b	   50000	     73816 ns/op
--- BENCH: BenchmarkHasFactorBigIntRnd_128b
	all_test.go:375: Random 128 bit factor, random 32 bit exponent

BenchmarkHasFactorBigInt_104b	   50000	     35097 ns/op
--- BENCH: BenchmarkHasFactorBigInt_104b
	all_test.go:399: Verify a 104 bit factor of M100279 (16.6 bit exponent)

BenchmarkHasFactorBigIntMod104b	   10000	    164248 ns/op
--- BENCH: BenchmarkHasFactorBigIntMod104b
	all_test.go:415: Verify a 104 bit factor of M100279 (16.6 bit exponent) using big.Int.Mod

BenchmarkHasFactorBigInt_137b	   50000	     50993 ns/op
--- BENCH: BenchmarkHasFactorBigInt_137b
	all_test.go:432: Verify a 137 bit factor of M7293457 (22.8 bit exponent)

BenchmarkHasFactorBigIntMod137b	     100	  11167520 ns/op
--- BENCH: BenchmarkHasFactorBigIntMod137b
	all_test.go:448: Verify a 137 bit factor of M7293457 (22.8 bit exponent) using big.Int.Mod

BenchmarkFromFactorBigInt20b_1e1	 1000000	       1357 ns/op
BenchmarkFromFactorBigInt20b_1e2	  500000	       7602 ns/op
BenchmarkFromFactorBigInt20b_1e3	   20000	      82311 ns/op
BenchmarkFromFactorBigInt20b_1e4	    1000	    2159702 ns/op
BenchmarkFromFactorBigInt20b_1e5	      10	  148960200 ns/op
BenchmarkFromFactorBigInt20b_1e6	       1	14602832000 ns/op
BenchmarkFromFactorBigInt137b_1e1	 1000000	       1663 ns/op
BenchmarkFromFactorBigInt137b_1e2	  500000	       7661 ns/op
BenchmarkFromFactorBigInt137b_1e3	   20000	      88107 ns/op
BenchmarkFromFactorBigInt137b_1e4	    1000	    2208817 ns/op
BenchmarkFromFactorBigInt137b_1e5	      10	  151161500 ns/op
BenchmarkFromFactorBigInt137b_1e6	       1	14677768000 ns/op
ok  	github.com/cznic/mathutil/mersenne	98.369s
$
mersenne: Make Fromfactor perform in O(n), was O(n^2)

$ go test -bench B
PASS
BenchmarkNew_1e1	 5000000	       413 ns/op
BenchmarkNew_1e2	 5000000	       430 ns/op
BenchmarkNew_1e3	 5000000	       506 ns/op
BenchmarkNew_1e4	 1000000	      1104 ns/op
BenchmarkNew_1e5	  500000	      6488 ns/op
BenchmarkNew_1e6	   50000	     53935 ns/op
BenchmarkNew_1e7	    2000	    610256 ns/op
BenchmarkNew_1e8	     200	   9300775 ns/op
BenchmarkHasFactorUint32Rnd	 5000000	       692 ns/op
--- BENCH: BenchmarkHasFactorUint32Rnd
	all_test.go:318: Random 32 bit factor, random 32 bit exponent

BenchmarkHasFactorUint64Rnd	  100000	     27746 ns/op
--- BENCH: BenchmarkHasFactorUint64Rnd
	all_test.go:344: Random 64 bit factor, random 32 bit exponent

BenchmarkHasFactorBigIntRnd_128b	   50000	     74736 ns/op
--- BENCH: BenchmarkHasFactorBigIntRnd_128b
	all_test.go:375: Random 128 bit factor, random 32 bit exponent

BenchmarkHasFactorBigInt_104b	   50000	     35428 ns/op
--- BENCH: BenchmarkHasFactorBigInt_104b
	all_test.go:399: Verify a 104 bit factor of M100279 (16.6 bit exponent)

BenchmarkHasFactorBigIntMod104b	   10000	    163145 ns/op
--- BENCH: BenchmarkHasFactorBigIntMod104b
	all_test.go:415: Verify a 104 bit factor of M100279 (16.6 bit exponent) using big.Int.Mod

BenchmarkHasFactorBigInt_137b	   50000	     51277 ns/op
--- BENCH: BenchmarkHasFactorBigInt_137b
	all_test.go:432: Verify a 137 bit factor of M7293457 (22.8 bit exponent)

BenchmarkHasFactorBigIntMod137b	     100	  11334650 ns/op
--- BENCH: BenchmarkHasFactorBigIntMod137b
	all_test.go:448: Verify a 137 bit factor of M7293457 (22.8 bit exponent) using big.Int.Mod

FromFactorBigInt20b_1e1	 1000000	      1100 ns/op -19%
FromFactorBigInt20b_1e2	  500000	      6943 ns/op -9%
FromFactorBigInt20b_1e3	   50000	     66050 ns/op -20%
FromFactorBigInt20b_1e4	    5000	    673484 ns/op -79%
FromFactorBigInt20b_1e5	     500	   6719932 ns/op -95%
FromFactorBigInt20b_1e6	      50	  67695280 ns/op -99%
FromFactorBigInt137b_1e1	 1000000	      1337 ns/op
FromFactorBigInt137b_1e2	  500000	      7254 ns/op
FromFactorBigInt137b_1e3	   50000	     72234 ns/op
FromFactorBigInt137b_1e4	    5000	    716460 ns/op
FromFactorBigInt137b_1e5	     500	   7132864 ns/op
FromFactorBigInt137b_1e6	      20	  72264000 ns/op
ok  	github.com/cznic/mathutil/mersenne	81.208s
$
More utils