Support raw installer files, as well as templates

Unfortunately, booting the ESXi installer requires that we chain through
pxelinux -- it provides a support environment that allows the multi-boot
kernel that ESXi uses to be loaded correctly.  We can't just boot that,
though, because pxelinux without iPXE doesn't support loading data from
a URL.  (At least, in the versions we use.)

Consequently, we end up chaining iPXE => pxelinux => mboot.c32 and the rest of
the installer.  This requires that we serve pxelinux.0 -- a binary file --
from our installer.

That was previously somewhere between ugly and impossible: templates are
required to be valid UTF-8 text, which means that for this to work we needed a
base64 encoded version of the pxelinux.0 binary, wrapped in a template that
would decode and emit the binary version at runtime.  Ugh.

This implements serving raw files from installers.  You have to ask for them
explicitly, and cannot access raw templates using this; we blacklist those.

Signed-off-by: Daniel Pittman <daniel@rimspace.net>
ESXi 5.5 installer

This implements an ESXi 5.5 installer, capable of automatically installing to
the first local disk.  Roughly speaking, this is identical to the ESXi
installer in the older Razor.

Signed-off-by: Daniel Pittman <daniel@rimspace.net>
Improved logging to improve debugging

This adds and moves a handful of logging statements around the product, to
improve our logging.  These are probably not the most efficient possible
implementations, but they make it easier to identify what is going on with the
product at a glance.

Signed-off-by: Daniel Pittman <daniel@rimspace.net>