compare two objects or arrays and return the diff (add/updated/removed/unchanged)