Resolve #1330 EJSON circular and global references

This pull request adds support for circular and global references
* Added EJSON type $reference
* Added EJSON type $global
* Implemented a clone that preserves circular references inside the new
cloned object
* Parse and stringify support for circular and global references
* Added tests

This pull request also adresses:
* issue #1581 EJSON.stringify fails to stringify a Meteor.Collection
object
* issue #1446 EJSON.stringify / clone failes if object has circular
references?

*NOTE: Globals are partially supported on node.js in the sence that the
current code does not "scan"/iterate over the global scope.*