small refactor

added a preprocessor conditional around the debugging code in resolve()
so that the printing of the number of candidates for every cell
can be turned off by defining NDEBUG
some refactoring, more debugging code in resolve()
some refactoring, new methods
fix bug in resolve()

resolve used to fail if the field at index 80 (the last field on the
grid) was populated before the call to resolve().
It now works correctly.
made a few methods private

Made a few methods private
which do not need to be exposed to users of the class