Ensure HTML IDs use underscores not hyphens

A bit OCD, but I noticed that the checkout forms were an exception in
using a hyphen so I've cleaned up all IDs to use underscores.
Minor tweaks following code-review comments

Thanks to @maikhoepfel and @piotrjakimiak