KBCC method seems to be working correctly now.

Need to fun some tests with it.

Also added the ability for the CCTrainer to remember the best Candidate if things go backwards.

This seems less useful since I found that things go backwards because the network switches which error it likes. Not sure why this happens. Might need to change things so that significant changes in either direction allow things to continue. But this seemed like it was causing problems.