Sieve class

A class named sieve and iterator were made to match the implementation of primesieve.org to use in ntheory functions.
Why is this needed here? The optional libraries should be only included in the .cpp files, so that the includes don't creep into the csympy headers.