Diff Ruby values by recursively collecting differences between Hashes, Arrays and scalar values.