Avoid duplicating routes for HEAD requests.

Follow up to rails#15321

Instead of duplicating the routes, we will first match the HEAD request to
HEAD routes. If no match is found, we will then map the HEAD request to
GET routes.
Improve router test.

We should assert that routes will not be recognized if the verbs do
not match.