Various changes to allow non-workingtree specific tests to run entirely
from MemoryTransports:
* Create MemoryTree and pull up common code for it from WorkingTree to
a new common base class MutableTree.
* Add MutableTree.mkdir().
* Add MutableTree.put_file_bytes_nonatomic().
* New test helper make_branch_and_memory_tree().
(Robert Collins)