New versioning + Packaging

### Invoking setup.py
To just build the executables (zip distribution or QA):

    python setup.py build

To build an MSI package for potential deployment:

    python setup.py bdist_msi 

### Versioning
The new Versioning uses 

    git describe --tags

to, if the working copy is not exactly on a current tag, create a version number of the format 

    <tag>-<commit>-g<changeset>

which equates to the following scheme given our a.b.c tagging scheme for releases.

    <major>.<minor>.<patch>-<commit>-g<changeset>


 It also converts that version number into a sanitized version used by bdist_msi of the format

    major.minor.patch

(this loses the last commit and changeset fragments from development builds). If the version cannot be parsed into at least 1 numeric fragment or is empty, it will use 0.0.0.

However, the bdist_msi installer is much more cooperative in up- and downgrading the installed application, meaning there is no longer an error trying to install the same or an earlier version of the MSI.

### Output Directories
The Executables are placed here:

    ./build

The MSI files are placed here:

    ./dist

### CommitLog
* New setup.py uses cx_Freeze instead of py2exe (lots of excess code imported, as it seems); but file is much simpler now.
* Client always sends version=0 to the FAF server to skip updates. TODO: Write its own Updater Module.
* version.py tool added that can generate version numbers from Git.
* MSI build and versioning now supported.
* Cleaning and debugging - MSI file correctly created now. TODO: autodetect previous directory, associate file types and URL schemes
* Simplified dependencies. Added legacy uid.dll file.
* Refactored updater into separate module inside of client.
* Proper Desktop Shortcut and Working Directory added.
* Default directory simplified to what it also was in the AIP installer.