Package from the future protection

### Overall scope ###

When a user has an older version of Dynamo, it's possible that they might attempt to download a package created with a newer version of Dynamo than their current one.  This pull request adds functionality to show a simple `MessageBox` when a user attempts to do this.  They are still allowed to move forward, but have the opportunity to cancel a package download (include all of its dependencies).  

### Messagebox!? ###

I think that we could add additional improvements to the UI for this work with a nicely styled `MessageBox`, but it doesn't seem like a high priority at the moment. Much of the package manager UI uses the `MessageBox` class for stuff like this, so it could be a later project to change this.

### Other changes ###

This pull request also changes Dynamo to use the dynamopackages.com endpoint (it previously used the IP address).  Also, the user should no longer see duplicate dialogs when uninstalling a package to replace it with a newer version.  They will only see one before they download the package.

### Unit tests ###

Fairly scant, this just introduces a unit test demonstrating the version checking logic.  This method only tests the major, minor, and build numbers (major.minor.build) so users with the different revision numbers (e.g. bleeding edge users) can still share packages amongst each other without seeing the dialog.

@ikeough @Benglin 
Another candidate for ```private```, but I think in this case the caller ```DownloadAndInstall``` would want to do that silently? Maybe reinstate the original ```UninstallCommand```? IMHO, the ```DelegateCommand``` provides a way to 'disable' an API call by returning ```false``` through its ```CanExecute``` method (therefore having a finer control over when an external component can make an API call). Again, that's just my opinion :)