supports cycles in maps and fixes #521

also supports:

```js
	var me = {name: "Justin"}
	var references = {husband: me, friend: me}
	var ref = new can.Map(references)
	
	ok( ref.attr('husband') === ref.attr('friend'),  "multiple properties point to the same thing")
```