Vastly improved efficiency of the sieve.

Changed from using a linked list to using a BitVector for the sieve, vastly improving efficiency. (The implementation was also tweaked to match the algorithm correctly as well - instead of checking to see if each number was divisible by he current prime, the loop jumps to the next multiple and automatically sets it. This was also likely a cause of the improvement.) Now, the primes up to about 100,000,000 can be generated fairly efficiently.