Port sieve from streamrec project to Spire.

This is not yet polished or integrated into spire.math.prime.
However, it does contain an optimization over streamrec
(a custom heap implementation).
Clean up Sieve implementation.

This commit removes some artifacts from the streamrec project.
It also restructures the files a bit to try to keep things
a bit more organized. Finally, a few comments were added.
Add .stream and .fill to spire.math.prime.sieve.

These methods can build sequences of prime numbers:
a lazily-evaluated stream and an array respectively.
Move high-level sieve-based functions to spire.math.prime.

Previously we had a sieve package object inside of prime, but that
feels sort of wrong here. It's much nicer to just say:

  spire.math.prime.nth(n)
  spire.math.prime.stream.take(n).toList

And so on.
Add a slightly more flexible spire.math.prime.fill() method.

Previously fill(n) always gave you the first n primes. This new
variant is fill(n, limit) and gives you the primes starting from
the nth through the (n + limit - 1)th.