Implement extra-info GET and PUT API endpoints.

This includes both extra-info and extra-info with key.
Also improve how not found errors are handled by the router and the endpoints.

This is mostly based on Roger's work. I just fixed the failing tests and other minors.
I am not sure I understood? Are you suggesting to just put HandleGet and HandlePut in the same line? In that case, I think it's idiomatic code style to just put each field in a sperate line.