Memoization and associated support.

With that we can go a lot further, though it still runs out
of steam pretty quickly.

scala> xs take 30 >
[ 2, 4, 6, ... ]
[ 3, 9, 15, ... ]
[ 5, 25, 35, ... ]
[ 7, 49, 77, ... ]
[ 11, 121, 143, ... ]
[ 13, 169, 221, ... ]
[ 17, 289, 323, ... ]
[ 19, 361, 437, ... ]
[ 23, 529, 667, ... ]
[ 29, 841, 899, ... ]
[ 31, 961, 1147, ... ]
[ 37, 1369, 1517, ... ]
[ 41, 1681, 1763, ... ]
[ 43, 1849, 2021, ... ]
[ 47, 2209, 2491, ... ]
[ 53, 2809, 3127, ... ]
[ 59, 3481, 3599, ... ]
[ 61, 3721, 4087, ... ]
[ 67, 4489, 4757, ... ]
[ 71, 5041, 5183, ... ]
[ 73, 5329, 5767, ... ]
[ 79, 6241, 6557, ... ]
[ 83, 6889, 7387, ... ]
[ 89, 7921, 8633, ... ]
[ 97, 9409, 9797, ... ]
[ 101, 10201, 10403, ... ]
[ 103, 10609, 11021, ... ]
[ 107, 11449, 11663, ... ]
[ 109, 11881, 12317, ... ]
[ 113, 12769, 14351, ... ]