feat(copy): copy can now handle cyclic structures
test(copy): Add tests for copying cyclic structures.
feat(equals): equals can now handle cyclic structures
test(equals): Add tests for testing equality of cyclic structures