caos.proto: Allow multiple namespaces for prototypes
caos.proto: Allow multiple namespaces for prototypes

Originally only one namespace existed for Caos first-class prototypes.
This, while simplifying things, brings a somewhat onerous requirement of
having to assign unique names to all Caos objects, be it a concept, an
atom, or a link.  Facing a potential of having more types of prototypes,
the shared namespace is no longer the best way, so provide a mechanism
for a prototype class to opt-out of the shared namespace.

Of course, prototypes that are recorded in the separate namespace
have to be asked for explicitly by providing the prototype class as a
"type" argument to get() or match().

edgedb/edgedb,edgedb/edgedb,edgedb/edgedb