added properties patch to diff, return new root from patch when replacing, added tests for basic patch operations