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.
The name is misleading as the "puttable" handler deals with GET calls as well. And when we add delete (or even post) calls, it makes even less sense. What about putGetEntityHandler?