symb: Add new common function to determine real param dtype
ast: Store PARAM symbol in ARG nodes, and pass to irEmitPUSHARG()

Passing the param symbol corresponding to a certain arg through to the
C/LLVM backends will allow for exact type casts, which is especially
useful for BYREF AS ANY parameters, where astNewARG() doesn't do the cast.
C backend: Cast arg to param's dtype if needed

This fixes the remaining cases of gcc warnings due to BYREF AS ANY params.
C backend: Pass -Wno-unused-but-set-variable to gcc to silence warnings