Problem 12 - Highly divisible triangular number

 - required optimizations to primes generator and
   prime factorization functions
 - use memoization in both cases to re-use as much as possible
 - timings went from >50 seconds to ~2 seconds