Add runtime hooks for C++ applications

Detail:
  Hooks for constructors and destructors using weak symbols referenced by
  cpplib when starting C++ applications. The weak symbols in the stubs are
  placed after the kernel init block, and a new "magic word" marker denotes the
  block is of 5 word length rather than 3 (since the block has historically
  been followed by the literal pool which can have function offset-like
  addresses in it). The top 16b of the word is an unlikely opcode, bottom 16b
  is table size.
  armsys.c, hostsys.h, clib/cl_entries.s
  * Move the init flags from stdlib.c into an _init_flags struct.
  * Move the finalisation function from stdlib.c into armsys namespace.
  * Save a word of workspace by moving the error recursion flag their too.
  * Call the new runtime functions for C++ if present.
  stdlib.c
  * Library finalisation and flags moved to armsys.c
  clib/cl_stub.s, h_workspace.s
  * Add magic word and 2x weak symbols to block
  kernel/k_body.s, kernel/k_data.s
  * Capture image descriptor pointer from stubs for later use
  * Pass the image descriptor to the init procs for their information
  clib/cl_init.s
  * Pass the image descriptor on to _clib_initialise()
  clib/cl_body.s
  * Inspect the image descriptor, if all 5 words are valid, copy into the
    function pointers for use by armsys C code
  clib/clibdata.s, clib/cl_spare.s, clib/cl_data.s
  * Adjust data size by 2 words for new entries, give back 1 word of flags
Admin:
  Tested with a simplistic 'hello world' type application (test/cppprog.c).
  ANSILib isn't expected to be used with C++ so is unchanged.
10 jobs for CppSupport in 48 seconds (queued for 4 seconds)
Status Job ID Name Coverage
  Static Analysis
passed #79355
cross
copyright

00:00:01

passed #79348
cross
gitattributes

00:00:01

passed #79349
cross
gitignore

00:00:00

passed #79352
cross
head_log

00:00:00

passed #79354
cross
head_whitesp

00:00:01

passed #79350
cross
license

00:00:02

passed #79353
cross
makefile

00:00:00

passed #79351
cross
versionnum

00:00:00

 
  Softload
passed #79356
cross
softload

00:00:37

 
  Cleanup
passed #79357
cross
cleanup

00:00:01