Release package improvements

Implemented tests for detecting and preventing a user from creating an invalid release package.

Done:

 - [x] fail hard when the dependency cannot be resolved
 - [x] package Ids can be case insensitive (Rx-Xaml versus RX-XAML) - be tolerant of that
 - [x] when `CreateReleasePackage` raises an error, display the message and return an error code
 - [x] in `New-Release`, give up on the package creation process when you get an error
 - [x] unit tests and integration tests for these scenarios

Other notes:

 - I used a dirty little trick to ensure I didn't impact existing tests (which didn't check these because they didn't care)
 - integration tests recreate the universe around them (specify packages, call nuget.exe to install, then run tests)

Resolves #182