Getting the build script to a working state

I didn't mean to re-write as much as I did. It was mostly working as it was but I kept on going to handle some edge cases.

I think because I used `invoke-webrequest` this is not PSv3.0 only. I'll come back to looking at this to use the .NET Webclient. I was trying to get it to run in parallel.

If you run

    help .\build.ps1 -full

in powershell you'll see why the top comment is so funky and why using types helps.

Could could still do with handling being executed outside the the cmder/scripts directory. And a swath of other things.