Fix the prime factorisation of numbers less than 2.

Numbers less than 2 should be considered as having no prime factors.
Doing so also allows us to simplify genericIsPrime to a simple pattern
match instead of a guard.
Make primes a finite list.

Previously, I've run into issues with the primes list overflowing and
producing nonsensical results. primes now stops generating primes once
INT_MAX is reached. While it was sometimes handy to pretend that
primes was an infinite list, it is much more reliable for it to not be.
Add "primeInteger" methods working with Integers.

There are really only two integer types I really care about Ints and
Integers, having generic prime functions is useful in terms of internal
implementation, but isn't that great an API. So now the Integer versions
of the prime functions are exported and the generic versions are not.
Add Haskell solution to Problem #60.

This is the first problem that I've solved first in Haskell!