Reworking client tests, added more utils for fs testing, failing multipl...

This PR is about adding a bunch of tests for various ways that a client might interact with the server, and making sure the filesystem ends up in a state we expect.

This isn't ready to land yet.
It documents it, allows you to remove it if you need to, and helps in stacks.  It's good in tests to do it.