Add oo.Registry and oo.Factory

oo.Registry
* Class for registering data by one or more symbolic names

oo.Factory
* Class for registering constructors by one or more symbolic names and
  creating objects