implementation of cloneDeep

see #455 
It's better to use `assert.strictEqual` as it gives more informative error messages. For example, if `R.cloneDeep()` were to return 42 the message would be `42 === "undefined"` rather than `false == true`.