Modernise build structure

* When cross-compiling, allow the assembler tool used to be overridden using
  the environment variable ASMCMD
* Rewrite Makefile to use shared makefile fragments
* Integrate separate build scripts for cros-compiling variant
* Remove dependence on ancient local copy of OSLib header files - requires a
  few tweaks to adjust for changes in OSLib types
* Remove some unused files from the local copy of the Support library
* Add .gitignore
* Tell GitLab that one source file is yacc format (rouge syntax colour
  library doesn't know yacc, so select C as next-best fit)
* Enable CI/CD
11 jobs for CrossCompilationSupport in 43 seconds (queued for 3 seconds)
Status Job ID Name Coverage
  Static Analysis
passed #10588
cross
cppcheck

00:00:06

passed #10581
cross
gitattributes

00:00:01

passed #10582
cross
gitignore

00:00:00

passed #10585
cross
head_log

00:00:00

passed #10587
cross
head_whitesp

00:00:00

passed #10583
cross
license

00:00:00

passed #10586
cross
makefile

00:00:00

passed #10584
cross
versionnum

00:00:00

 
  Softload
passed #10589
cross
softload

00:00:07

failed #10590
cross allowed to fail
softload_gnu

00:00:08

 
  Disc
failed #10591
cross allowed to fail
disc_BuildHost

00:00:14

 
Name Stage Failure
failed
disc_BuildHost Disc
Error running make export (hdrs) on module 'egrep'.
Error running make export (hdrs) on module 'grep'.
Error running make export (hdrs) on module 'mkdir'.
Error running make export (hdrs) on module 'sed'.
Error running make export (hdrs) on module 'wc'.
Error running make export (hdrs) on module 'ShrinkWrap'.
------------------------------------------------------------------------------
Cleaning up file based variables
ERROR: Job failed: exit status 1
failed
softload_gnu Softload
/home/gitlab-runner/builds/hYz1sbzj/0/bavison/defmod/RiscOS/Export/APCS-32/Lib/OSLib/OSLib.a: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status
CApp:250: recipe for target 'defmod,ff8' failed
make[1]: *** [defmod,ff8] Error 1
make[1]: Target 'install' not remade because of errors.
CApp:140: recipe for target 'install' failed
make: *** [install] Error 2
Cleaning up file based variables
ERROR: Job failed: exit status 1