Add Utils::amp() method to escape ampersands in output URLs.
Don't automatically add ids, because this can cause invalidating duplicates.
Fieldset and checkboxes divs don't have names, either.
Escape the ampersands in the URLs in the menu for validation.
If a form has an empty action, don't add the empty action parameter, which fails validation.