roundtrip: run silently when roundtripping
dtd: underscore is valid in entity names

We where failing is_valid_accesskey when entity name contained _ which
would remove a leading & and make the entity invalid.
dtd: optional expected makes cleaner roundtrip setups
accesskeys: test numeric keys
accesskeys: test combining non-ASCII keys

The function actually claimed to return Unicode but was converting to a
basestring.  So this also drops that conversion to basestring.
accesskeys: combine using correct case

We always thought, or claimed that we combined accesskeys based on
prefering the case before using an alternate case.

It seems that our code actually prefered uppercase and then would try
lowercase.  Thus this string:

"Close Other Tabs" combined with an accesskey of "o" would result in
"Close &Other Tabs" because capital O would win even though lowercase O
was present.  The correct combineation should have been "Cl&ose Other
Tabs", preferring the correct case before the alternate case.
accesskeys: add whitespace to combine() for reasability
accesskey: use elif for readability