035a8fc8a4
Functions to manipulate candidates during the solution search now always return a Result instead of sometimes returning a bool, and other times returning an Option. We opted to use Result over Option mainly to (ab)use the try! macro. In addition, it also makes it emit a warning when we forget to handle the result. (We tend to assume people don't just ignore the result and continue as normal, instead of putting the puzzle in a special contradiction detected state.)