Race cleanup: Make tests validate filename in Create instead of recording for later check.

This particular instance never had the validation code, even.
Fix races in tests: write, create3.

Isolate the variables used purely for checks into "seen".

Tests can now have a "setup" method that will be called before "test".
This lets tests reuse each other in a more modular way. Setup is
called before the Serve goroutine is launched, to avoid data races
there.
Fix races in tests: writeAll, create1, create2.
Fix races in tests: writeAll2.
Fix races in tests: release.
Fix races in tests: mkdir1.
Fix races in tests: symlink1.
Fix races in tests: link1.
Fix races in tests: rename1.
Fix races in tests: mknod1.
Fix races in tests: interrupt.
Fix races in tests: truncate42, truncate0.
Fix races in tests: ftruncate42, ftruncate0.
Fix races in tests: truncateWithOpen.
Move Release test earlier, as other tests now rely on Release being called.

Closing the seen data channel in Release makes the tests simpler.
Release not called would result in many of the other tests hanging, so
test Release first before moving on.