compiler: Start FB_CPUTYPE enum at 0

(to match the assumptions I made in 378fb004, which represents at least
the 3rd time of me running into this non-issue)
compiler: Use multilib specific libdir when cross-compiling without -target

For non-standalone fbc:

fbc                         -> lib/freebasic/   (native)
fbc -arch 32                -> lib/freebasic/   (on 32bit system)
fbc -arch 32                -> lib/freebasic32/ (on 64bit system)
fbc -arch 64                -> lib/freebasic/   (on 64bit system)
fbc -arch 64                -> lib/freebasic64/ (on 32bit system)

fbc -target i686-linux-gnu          -> lib/i686-linux-gnu-freebasic/
fbc -target i686-linux-gnu -arch 32 -> lib/i686-linux-gnu-freebasic/
fbc -target i686-linux-gnu -arch 64 -> lib/i686-linux-gnu-freebasic64/

fbc -target x86_64-linux-gnu          -> lib/x86_64-linux-gnu-freebasic/
fbc -target x86_64-linux-gnu -arch 32 -> lib/x86_64-linux-gnu-freebasic32/
fbc -target x86_64-linux-gnu -arch 64 -> lib/x86_64-linux-gnu-freebasic/

This matches the behaviour of gcc multilib toolchains, where one gcc build
(for a certain target system) supports compilation for both 32bit and 64bit
via the gcc -m32/-m64 options, and includes libraries for both.

Thus, for example, there are two ways to cross-compile from a 32bit x86
system to x86_64:
	a) gcc -m64 (multilib)
	b) x86_64-pc-linux-gnu-gcc (full gcc cross-compiler)

fbc can make use of b) through the -target option, i.e.
	fbc -target x86_64-pc-linux-gnu

With this change it can also use a), whenever the -arch option is used
to change away from the target's default arch, following the above example:
	fbc -arch 64

This is nice because popular GNU/Linux distros (I know of Debian, Ubuntu,
OpenSUSE) have gcc multilib builds for cross-compiling between 32bit x86
and 64bit x68_64, rather than fully separate gcc cross-compilers.
(though they do have fully separate gcc cross-compilers for MinGW etc.)
makefile: Support multilib too

For example, on a 32bit system, use
	make rtlib gfxlib2 FBMULTILIB=64
to compile 64bit versions of the rtlib/gfxlib into lib/freebasic64/,
using gcc -m64, for usage with
	bin/fbc -arch 64
for cross-compiling from 32bit to 64bit.

This is opposed to using a full cross-compiler, such as:
	make rtlib gfxlib2 TARGET=x86_64-pc-linux-gnu
because multilib toolchains are easily available on current GNU/Linux
distros, while full cross-compilers aren't.
C backend: Use gcc -march instead of -mtune to match ASM backend behaviour

With -march, gcc will use certain CPU instructions, while -mtune only
affects pipelining optimizations etc.

Thus -march fits better, since fbc -arch 486 (the default) is supposed to
generate code for i486, not just fine-tune for it.
compiler: Use *.exe output name for win64 too
compiler: Use lib*.so -dll output name for linux64 too
compiler: Add ld -m emulation options for linux64/win64 targets
compiler: Add ld -dynamic-linker, DLL build options, etc. for linux64/win64
compiler: Add CRT startup files for linux64/win64, same as usual
compiler: Enable import library creation for win64
compiler: Allow *.rc input files for win64
compiler: Allow *.xpm input file for linux64
compiler: Add usual default libpaths and libs for linux64/win64
compiler clean up: Solve out targetid variable in fbcInit2()
compiler: Print out target system/arch under -v
parser: Activate Extern Import for win64
compiler: Link in rtlib/gfxlib2 dependencies on linux64/win64 too
compiler: Call __monstartup() for win64 too
compiler: Call __main() on win64 too
compiler: Fix breakage due to b3147277