Fixes bugs in Game.prototype.buildRelatedValues and util.diffArrays
Fixes bugs in Game.prototype.buildRelatedValues and util.diffArrays

Attempting to solve a largely empty board entails,
almost inevitably, trying to compile all the
digits from totally empty related cells. This lead
to weird bugs:
* it would throw an error when trying to
  call reduce() on an empty array (okay, that's
  not that weird)
* after adding a conditional that returned a
  non-reduced empty array in such cases,
  a new wrinkle appeared: the regex mechanism
  of util.diffArrays() relied on there being a
  subtrahend array that actually contained stuff.
  Without, the elements of the first array got
  concatenated into a single string. Since the
  return value had a single element, "123456789",
  cells were getting set with that as a weird
  false positive.

So:

* Start the accumulator, relatedValues, in
Game.prototype.buildRelatedValues as ["0"] rather
than []. That means both that an empty array is
never being reduce()d, and that an empty array is
never being sent to util.diffArray. Since "0"
never appears in the other operand of diffArrays,
the results are unchanged.

* simply return A from util.diffArray() if
B.length === 0

ambirdsall/javascript_sudoku_solver,ambirdsall/javascript_sudoku_solver