Adding unit tests for HtmlHelper.Password

Partial fix for #453
nit: updating the `ModelStateDictionary` instance in an unusual way.  not at all common for entries to be overwritten.  but since it's certainly possible for `viewData.Model != null` (e.g. contain a value from a database) when `viewData.ModelState` contains errors, probably not worth changing anything here.