use empty struct for generic function's value

the actual function value is emitted on function invocation.
now, the type doesn't need to be emitted on variable reference and it
means the type propagation is no longer required.
rename AST node; member_access -> ufcs_invocation