Porting CheckBox and CheckBoxFor unit tests

Partial fix to #453
this test demonstrates a bug. `CheckBoxFor()` is falling back to `ViewData` when the expression result is `null`. instead all of the `BlahFor()` methods should focus entirely on the expression. (yeah `DropDownListFor()` and `ListBoxFor()` are exceptions in sometimes checking `ViewData` for their `selectList`)
I hope (and suspect) the problem is specific to `CheckBoxFor()`.