server creates snapshots dir on startup

also split all of the request handling tests into a separate file
speed up some sleepy tests; move helpers out
server restores snapshots on startup
server saves snapshots when handling requests

Saves snapshots after handling requests that change a container's state.
Removes snapshot when container is destroyed.

Currently returns an error if saving the snapshot fails. This is done instead
of silently continuing even through the request technically succeeded.

It's best to not hide these errors by default, as it's pretty important that
snapshots succeed to be saved.

[#61232150]