Reads all datatypes of the given NodeId.
Recursively reads all datatypes of the given NodeId. The NodeId can be a datatype, a variable, or a variable type. The function returns the data type object of the given nodeid. If the NodeId does not exist, an exception will be thrown.