Make HTML helper `null` handling consistent

- #874 lines 3, 4, and 6
- correct `Value()` to treat a `null` expression name the same as `string.Empty`
- add missing `[NotNull]` attributes in `EditorExtensions` and for `GenerateIdFromName()`
- consistently pass `null` for default expression names to the helpers
 - for example, from extension methods
- add test cases using `null` for expression name

nits:
- correct summary XML comment for `HtmlHelper` class
- use named parameters and prefer interface (not extension) methods in changed calls
:-1: We're not fixing #765 right now and the rest of this interface uses `[NotNull]`.  We should be consistent.

In any case those uses aren't really about guaranteeing an implementation has the same attribute (though a compiler extension or analysis tool that did that would be nice as well).  More about complaints an analysis tool might make if it notices a potentially-`null` `string` passed to this method.