Fix #667: Check for BYREF return in override and function pointer checks
Handle return BYREF in internal function pointer mangling

This prevents the internal function pointer procedure symbols to be re-used
for function pointers that have equal types and parameters, and only differ
in the "return BYREF" attribute, i.e. one returns BYREF and the other does
not.

This way such two function pointers will be treated as being different
types, fixing (at least) the suspicious pointer assignment warnings.
(perhaps it also matters for overloading?)
C++ mangling: Handle return BYREF, don't ignore CONST