Change #dup to #deep_clone

- Update the documentation to reflect new usage
- Update Tests
- Update Implementation of #dup