0.8 - Testing AppSetup Components

As part of 0.8 we should be thoroughly testing the app setup components:

 - [x] implemented test for running an AppSetup on install
 - [x] implemented test for running an AppSetup on uninstall
 - [x] implemented test for running an AppSetup for specific version (and that it skips for another version)
 - [x] implemented assembly resolver for loading other assemblies an AppSetup needs
 - [x] implemented tests for custom assembly resolver
 - [x] review and eliminate duplication wherever possible

Resolves #127