Fix bug in euler.primes function prime_sieve

The function did not correctly run up to the bound given, it instead ran
up to the number - 1. Some problems assumed this behavior, and others
did not. The function is now expected to generate all primes up to and
including the number given as the bound on the sieve.

Previous solutions which assumed incorrect behavior have been updated.
Fix euler.primes function prime_factors

This function terminated early for small numbers, and for large numbers
it would overflow. We now use a generator to prevent overflow, and test
until we are sure the number is either prime or we have all the prime
factors.
Add Python Problem 47