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.
You need a baseline `ls` to compare to.  So I take the layout, make it a temporary fs, then do the ls.  This gets me the thing I can compare the current fs' ls against.