Webserver content rendered by templates

This patch changes the webserver to render all pages via a server-side
templating library.

Templates are stored in /www/*.tmpl. A template is read every time a
page is rendered, so we can change the contents of webpages without
recompiling Impala.

Each template is supplied with a json document containing data to
substitute into the template. Classes may register callbacks that
populate a json document, and specify a template to render that document
with. Each json document includes some data common to all pages in the
__common__ object.

To support the old way of producing pages, some pages are produced by
adding a '__prerendered__' string to the json document, which is then
rendered via the common www/static.tmpl template. The effect is that
classes may still register callbacks that produce HTML output directly;
that output is then substituted directly into a common template.

The benefits of this change include:

* No more hardcoded HTML (although some existing HTML is still to be
  removed).
* Templates may be updated independently of compiling Impala, and are
  easier to read.
* Changing endpoints to render json makes it easier for CM and our build
  scripts to consume their information (rather than parse the HTML).

Some minor changes:

* PathHandlers are now UrlHandlers - shorter and more descriptive
* Only one UrlHandler may be registered per URL. The only place we had
  two handlers per URL was /varz; this is now split into /varz and
  /hadoop-varz on Impala webservers.
* The navigation bar now has the name of the daemon, rather than the
  generic 'Impala'.

Change-Id: I14f182057a8822f12310fe2a59d7fcb6675ba7e5
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/2197
Reviewed-by: Alex Behm <alex.behm@cloudera.com>
Tested-by: jenkins
(cherry picked from commit c15ac0a1c2602dd2a07a93e2c2b6c955bc239d60)
Reviewed-on: http://gerrit.sjc.cloudera.com:8080/3650
Reviewed-by: Henry Robinson <henry@cloudera.com>