Disallow creating objects of abstract class via type()

Only type<>() was checked since 7ce32a19, but the type() check was missing.
Parse type<dtype>() as ctor call even if the dtype has CONST bits

so that type<const UDT>() works just like type<UDT>().
Fix type() and type<>() type checks for built-in types

Even though someinteger = type( 123 ) worked, someprocptr = type( ... )
did not, same for enums, because the old checking code assumed that
if the parser.ctxsym is set, it's the subtype of a struct. But of course
other types such as function pointers and enums use a subtype too, so
that assumption wasn't right.

(see also: 5fa418b5f0c2ddad955a386671da1aca00fb92c6)
symb: Change typeDump() to print out CONST bits too
Disallow parameter initializers for BYREF AS ANY|FWDREF parameters
Disallow type() if the type is ANY or a FWDREF

which can happen with BYREF AS ANY|FWDREF parameters.

(in case of FWDREF, an error was already shown before d76677f1,
so it's not mentioned in the changelog, since technically it's
a regression of that commit, not a bug in 0.24)
type(): Handle FB_DATATYPE_INVALID explicitly

... instead of relying on it to be handled as FB_DATATYPE_VOID.
(typeGetDtAndPtrOnly( FB_DATATYPE_INVALID ) = FB_DATATYPE_VOID,
but that may not be guaranteed forever)

parser.ctx_dtype can be set to FB_DATATYPE_INVALID, at least
parser-proccall-args.bas does that for arguments of overloaded procedures,
since generally the type context is unknown (due to the overloading, there
may be multiple parameters to choose from, and we only know which one it
will be after the argument expression has been parsed)
Optimize WITH on variables to not use a pointer temp var

so that
	with( variable )
		print .field
	end with

becomes
	print variable.field

instead of
	temp = @variable
	print temp->field