Refactored sudoku benchmark to use traits and added some tests
auto merge of #5420 : boggle/rust/sudoku-with-traits, r=graydon

Came back to look at rust and found out that this had been broken by some refactoring work. Fixed and now has tests.