FunctionInstanceId keeps hash of instance
added FunctionInstance
added FunctionTypesRegistry
renamed Function -> FunctionDefinition
renamed FunctionType -> Function
renamed FunctionInstance -> Expression, FunctionInstanceId -> ExpressionId, FunctionInstanceIdFactory -> ExpressionIdFactory