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.
Also returns whether the given NodeId is variable (true) or not (false).