Detect valid Revit installations without addin directories during installation

### Purpose

Previously, the installer used a crude check to find out if Revit was installed.  Just check for the addins directory.  Now it uses the RevitAddinUtility, called by the RevitInstallDetective executable, in order to check for the install.

This should allow for more robust detection of a Revit install.

### Philosophy

RevitInstallDetective uses the RevitAddinUtility, bundled with the Revit SDK, assuming it is the best possible mechanism to determine whether a given version of Revit is installed or not.  It is designed to minimize all possibility of crashing.  

### Usage

RevitInstallDetective is a simple command line utility that takes a single argument, the product name.  The executable returns with a code of 0 when the product is present, otherwise -1.  RevitInstallDetective correctly handles Vasari Beta 3, which appears with Product type Revit2014 by the RevitAddinUtility.  Vasari Beta 3 will not give a false positive for Revit 2014, nor vice versa.

```
cmd> RevitInstallDetective,exe VasariBeta3 // return code is 0 when Vasari Beta 3 is installed, otherwise -1
cmd> RevitInstallDetective.exe Revit2014   // return code is 0 when any version of Revit 2014 (e.g. Architecture, MEP) is installed, otherwise -1
cmd> RevitInstallDetective.exe // return code -1, you need to supply an arg
cmd> RevitInstallDetective.exe vasaribeta3 // fails, product name is case sensitive
```
### Unit tests

RevitInstallDetective comes with a collection of unit tests, although they are dependent on the machine having the same set of installs as myself.  

@ikeough, @lukechurch

I know what you're thinking, "Wow!  Peter is a real Pascal ninja!"  ;)