Inital usage of GitPython

* Ensures only files in the repo are included in the .7z packages
* Still need to modify the NSIS scripts to somehow utilize this information
Refactor NSIS scripts

- Makes it easier to maintain
- packaging script must remove unwanted files before running
- refactor a bit to put repeatedly used code into macros.
packaging script improvements:

- More finally blocks on try statements: should leave the repo in a
  cleaner state if the build is aborted/fails
- line wrapping
- During installer creation, non-repo files are relocated to a temp
  directory, then restored after (not necessary for archive versions,
  since those use list files).  Requires GitPython.
- clean up build.log writing
- new option to disable relocating files
- If modified zipextimporter is not installed, will prompt to attempt
  to install it (will fail if Python is in Program Files).
- Includes `Mopy\Apps` in the distributables (it cannot be added
  to the repo, so a workaround was needed)

Closes #103
Merge branch 'lojack-build-script-improvements' into dev