TextBoxFor generates valid id attribute and LabelFor references it

Updated `InputExtensions.InputHelper` and `LabelExtensions.LabelFor` to generate a valid `id`/`for` attribute based on the field name. Copied relevant code lines from System.Web.Mvc source.
Relevant unit tests are included.
Closes #529