Stricter functional test validation

This changes the way that the functional tests validate the artifact
directory structure and contents. Previously, we only asserted on the
presence of the specified files. Now, we'll also assert on the absence
of unspecified files -- that is, we fail the test if any unexpected
files are present in the build artifact directories.
Merge pull request #39 from box/more_functional_test_validation

Stricter functional test validation