Adjust implicit main() result and argc parameter type to 32bit long
ir: Simplify procAllocArg/Local interface

Length parameter and offset result are only used by ir-tac/emit_x86,
but not the C or LLVM backends. Since the length is calculated from
the symbol, and the offset is stored into the symbol, and the symbol
is passed anyways already, emit_x86 can use the symbol directly,
as it already does with the proc symbol anyways.
symb-proc: Use correct length for struct function result param var

For functions returning structures, an implicit BYREF AS ThatStruct
parameter is added (although only the VAR representing the parameter,
no PARAM symbol itself). It should use the dtype's lengths, not the
pointer size just because it's BYREF, to follow the behaviour for other
parameters. The PARAM symbol uses the "real" length as the parameter
appears on stack, while the corresponding VAR symbol uses the dtype's
length. See also symbAddVarForParam().
cSymbolType(): Re-use typeGetSize() instead of duplicating
rtl: Use typeGetSize[Type]() instead of checking FB_{LONG/INTEGER}SIZE
Solve out FB_{POINTER|LONG|INTEGER}SIZE, add env.pointersize instead
rtl: Convert pointers to uinteger instead of ulong
fbint.bi: Remove unused FB_ARRAYDESC struct
fbint.bi: Remove unused FB_STRDESC struct