Add extensive error checking that will stop the build on first failure.

This revealed a couple of stampinf invocations on inf files that no
longer exist, so also remove those stampinf invocations.

Do not do git clone and checkout if xc-vusb.git already exists.
This makes incremental builds much faster. If we do use git, use the
version passed in via a gitbin argument rather than just picking up
whatever version happens to be on the path. Ideally we'd use the
logic in xc-windows.git/winbuild-all.ps1 to do the checkout, once
someone has time to reorganise the build tree.

Add a comment that refers people to
https://github.com/OpenXT/xc-windows/issues/3 which explains why we
still have to do clean builds of the DDK stuff even though I'm aiming
for fast incremental builds. The real fix is to run something like
an rsync to a copy of the source code, and build that instead, to keep
source and each type of binary file separate.
move Invoke-CommandChecked and Copy-Checked to openxt/windows/BuildSupport modules

Replace the signing scripting, which had essentially no error checking and a lot
of repetition with a powershell script (do_sign.ps1) which is called from
do_build.ps1. Both do_sign.ps1 and do_build.ps1 accept a "crosssign" argument
which optionally causes the build to be cross signed against a single specific
certifcate. This is off by default and removes an assumption in the old version
that we were using the cross signing certiifcate.

The error handling changes make use of a couple of powershell modules I
am submitting in a pull request for openxt.git.

I have successfully installed both test signed (i.e. with a certificate I created)
and release signed (i.e. using a certificate from Verisign and cross signing that).
There are still some warnings about unsigned material which I would like to resolve
in future patches, and I guess are already there.