Compute the upper bound correctly.

The largest thing *known* to be prime is the last entry of the bitv,
which corresponds to (len - 1)*2+1, not len*2+1.
Infer primality of factors >= upper bound where possible.

If we are left with a term <= upper bound^2 after trial dividing all the
primes in the sieve, then it must be prime, since nothing less than its
sqrt divides it. Hence we can complete the factorisation of more
numbers (in fact, one can factor-by-trial-division everything from 0 to
2^64 by just sieving up to 2^32).
Return partial factorisation information if factorisation fails.
Poke/prod/document.