trying to get Exec to behave like it used to

This pull request combines the two behaviors for Exec. It still allows retries while preserving the old behavior of throwing if the command Exec'd sets $lastexitcode.

I've also added a test spec to test the Exec behavior as well as modified a spec so it will still validate what it was testing before while working with the new behavior.

The new spec (nonzero_lastexitcode_should_throw_should_fail.ps1) behaves as I would expect when run in isolation, but it doesn't appear to work when run from psake-buildTester.ps1.