info: add JSON serialisation

This patch adds support for JSON serialisation of the information gathered by the info service.

Along with the existing methods for obtaining output in different formats, the web interface has been
improved to support the client choosing which format.  The default format remains XML, but the query
parameter 'format' and Accept HTTP request header are both consulted to allow an alternative format,
with the query parameter taking precedence.

httpd-side caching has been restructured to use a Guava cache and now applies to all requests,
keeping the last ten distict queries in memory.

Target: master