Register decorated function or class to collection.

Register decorated function or class into registered_collection, in a hierarchical order. For example, when reg_key="my_model/my_exp/my_config_0" the decorated function or class is stored under registered_collection["my_model"]["my_exp"]["my_config_0"]. This decorator is supposed to be used together with the lookup() function in this file.

registered_collection a dictionary. The decorated function or class will be put into this collection.
reg_key The key for retrieving the registered function or class. If reg_key is a string, it can be hierarchical like my_model/my_exp/my_config_0

A decorator function

KeyError when function or class to register already exists.