Add clone and merge tools with tests

I still need to make the asynchronous merge truly asynchronous.