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)