Handle nulls better in BuildVersion.  

Current implementation assumed the manifest and environment getters would thrown an exception (which they didn't).  If we got a NULL version, the system was NPEing down the line.   The fix was to throw an Exception when getting the version if it was null, which is picked up by the constructor and defaults the version to "Unknown" (current behavior).   Also fixed the unit test to force a null in the manfest getter