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 think the reason here is that we have an entityHandler that is used for GET requests, and a puttableEntityHandler for both GET and PUT. I am not sure about changing the latter without changing the former. I am open to suggestions. putGetEntityHandler does not look so good to me, because it's not generic: as you mentioned, if we introduce delete then we need to change the name of this function all over the code again. Ideas? perhaps s/puttableEntityHandler/entityHandler/ and s/entityHandler/entityHandlerGetOnly/ ?
I don't have a strong opinion BTW, the current also works for me.