Refactored a lot of code making improvements to fail more gracefully and...

Refactored a bunch of code, made a bunch of bug fixes, improved the debug logging and made the launcher fail more gracefully. 

I was moving fast so did not have enough time to log all of my changes but here is a rough list:

-Made it so that you cannot click the install/upgrade/verify buttons more than once which lead to a crash
-Added a check to see if we can connect to the FTP before proceeding which cleans up the debug logs and gives better feedback to the user
-Improved the version checking by using System.Version objects. Previously there was a bug where if the server version had an extra white space character "0.0.3" != "0.0.3 "
-Launcher update should now work for any executable name but this still needs testing
-There was a bug where if the game installed or updated successfully the local gameVersion.txt was not updated to reflect this and the launcher continually tried to update.
-Added scroll bars to the changelog
-Made it so that if the changelog is unavailable it will say "Error: Could not load change log from server."


I've tested this on my own FTP and successfully downloaded 1.2GB of game files. I still need to test updating the manifest however which I plan to do tonight.

I'd like to see the ability to cancel an install/update without having to close out the launcher and more fine grained progress for individual files (http://stackoverflow.com/questions/4591059/download-file-from-ftp-with-progress-totalbytestoreceive-is-always-1)