reduce infrastructure requirements for PXE installs.

This repository was developed on a site where there was a lot of investment
in XT infrastructure. Therefore we hard coded assumptions about the site
and its working practices into this repository. Before it was released
as open source we replaced many of the configration values with placeholders.

A similar problem exists in https://github.com/openxt-extras/scripts which is
used by this code and I've submitted a pull request to have configuraion passed
into by argument rather than have it hard coded to placeholders. This requires
some arguments to be passed by the code here which calls into scripts/infrastructure.

I think a good long term goal with this code is to make as few assumptions
about site infrastructure as possible. This patch is a step toward that.

Specifically:

- We now run a web server in a subprocess during PXE install instead of relying on
  a site web server which can publish all necessary files.

- We can install builds given simply a reference to an OE build tree, rather than
  only the centralised curated build output. I've wanted this for ages and it took
  a bit of work, which was now necessary since I do not have acess to automated centralised
  builds for OpenXT at this point.

- Previously I arranged for users to have SSH host key checking disabled for any machines
  that will likely get installed frequently. Now, we simply automatically disable host key
  checking by default. This is a compromise toward making it easier to get started with this.
  An approach I've not yet investigated is arranging for stable host keys even after automated
  reinstalls of machines.

- We still need a PXE server, serving up files configured at PXE_DIR, for automated
  PXE installs.

- There is a new --mac-address option, allowing the MAC address of the target machine to specified.
  We still have support for my site's database access to MAC addresses but this is off by default.

- Start making the use of the mongo database optioinal, and in particular do not write to it by default.