Improve MethodHandler

The patch does two main things:
* it uses a struct instead of a map. This is to be safer and detect typos. It also seems more appropriate than a map since the list of http methods is known.
* Using GET as a fallback if HEAD isn't defined. This is often a default and taken care of in the caller's handlers (`http.ServeContent` handles it).

And a minor fix in documentation: status is 405, not 406.

I am not sure if this is worth breaking the existing API, but I'll submit it anyway.
Also, I'm wondering if it would be better to use field names like `GET` instead of `Get`, even if this is quite unnatural in Go.