added some test utility classes
Started adding tests, found first bug.
added some more tests fixed more bugs
More tests and bug fixes
Swapped to a less complicated (but less efficient approach)
problem is caused by an overflow... duh!
Swapped back to more efficient solution

Tested difference to gain indication of performance
difference (by timing calculating the result 10,000 times):

slow implementation
  $ time java Main
  Starting euler8
  The largest product is: 23514624000
  Using: 5576689664895
  real    0m4.199s
  user    0m0.015s
  sys     0m0.015s

fast implementation
  $ time java Main
  Starting euler8
  The largest product is: 23514624000
  Using: 5576689664895
  real    0m0.824s
  user    0m0.031s
  sys     0m0.000s
naive (correct) solution to euler9
Correct solution for euler10

Caches previously calculated primes to speedup
determining if the next number is a prime
build with optimisations

speeds up calculation from 2min to 45sec on my machine
realised I was checking further than necessary

the largest of any pair of factors
is the square root of the product
(micro) Optimisation to only check odd numbers

Since we know that any even number is divisible by 2
and thus not prime.

This is a micro optimisation however, if we DID check
an even number the first test would be against 2 and
isPrime() would exit early. This does not noticably
improve the calculation time.
After looking into Sieve theory I tried Eratosthenes Sieve, which cuts the time
down from ~45 sec to less than one second.