clean up the context when a build fails

This PR fixes context cleanup for failed builds and adds a test.

Without the change to `builder/evaluator.go`, the new test fails like this:
```
--- FAIL: TestBuildContextCleanupFailedBuild (0.16 seconds)
        docker_cli_build_test.go:753: context should have been deleted, but wasn't
```