a bunch of changes

I've added support for elements and done some refactoring but the main one is support for cyclic objects. The main benefit of this is that it will preserve relationships between objects. so if something is aliased or has a bi-directional parent child relationship etc.. those semantics will be preserved. Before that sort of thing would just start a game of chicken between the heap and the stack. lol. I kept the old module around as 'acyclic.js' though because its a lot faster and obviously still useful.  

my changes also fix #1 as a side effect of the way it clones objects now. though I'm not sure inheritance is a good idea for GC its been great for my use cases so far. It should probably be made configurable i guess.