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
12 jobs for CrossCompilationSupport in 49 seconds (queued for 4 seconds)
latest
Status Job ID Name Coverage
  Static Analysis
passed #11951
cross
cppcheck

00:00:06

passed #11944
cross
gitattributes

00:00:02

passed #11945
cross
gitignore

00:00:01

passed #11948
cross
head_log

00:00:01

passed #11950
cross
head_whitesp

00:00:01

passed #11946
cross
license

00:00:02

passed #11949
cross
makefile

00:00:01

passed #11947
cross
versionnum

00:00:01

 
  Softload
passed #11952
cross
softload

00:00:08

failed #11953
cross allowed to fail
softload_gnu

00:00:07

 
  Disc
failed #11954
cross allowed to fail
disc_BuildHost

00:00:13

 
  Cleanup
passed #11955
cross
cleanup

00:00:01

 
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