fork() once for each CPU and call sieve() from each child process.

Allocate overflow list contiguous with hashtable, and negatively indexed
from the same pointer. i.e. olist[0]=htable[-1], olist[1]=htable[-2], etc.

Preprocess input sieve file and write it as a binary file that can be
mmap()'d into shared memory by multiple sr5sieve processes.

Use a more accurate estimate for the expected number of factors in a range.
Take the expected number of duplicates into account.

Calculate SMALL_HASH_THRESHOLD based on number of sequences in the sieve.

Allow reading of compressed input files.

Add generic versions of the VEC_* macros.

Add a self test before sieving begins.

The value of POWER_RESIDUE_LCM is actually limited to 2^15 because of the
use of int16_t for the divisor index in srtup64(). Use int32_t for divisor
index instead if POWER_RESIDUE_LCM is too large.

Add the checkpoint-on-demand functionality to the Windows build. This
requires figuring out how to send the Windows equivilent of a signal.

For x86, check whether cpuid/rdtsc are available before use.

If the number of subsequences surviving to BSGS is small, and the number of
giant steps large, then do the mulmods for more than one giant step at a
time.

Write mulmod-ppc64.S and mulmod-x86-64.S along the same lines as
mulmod-i386.S and mulmod-sse2.S.
