Replaced home-rolled type-checking code with typeOf module
Replaced the rest of the home-rolled typechecking code with typeOf()
Factored majority of clone method into its own helper function
Added error checking of clone_helper() back into clone() and added properties list parameter to clone_helper()
Replaced call to clone with clone_helper() in clone_helper()
Added circular dependency handling to clone()
Tided up project
Clarified README.md entry for clone()