Check for collision when defining names (Fixes #51)
Don't leak the internal namespace to imported modules (Fixes #50)
Uses $ for variables, 6459 for internals. (Fixes #48)

--HG--
extra : amend_source : 30e775a6e4eaea579a8571012b319a9418cd9388
Implements protocols as globals.
Merge.