Adding full checkmate support

- Also fixing bug in threatening squares detection where isBlocked
  was not being reset between calls to IsThreatening.