Restore support for use from low-level code
This set of changes restores support for use from low-level code where SWIs aren't allowed, as well as making a few other changes:
- Documentation updates
- Add a kernel build config (needs RiscOS/BuildSys!52 (merged)) and WIP HAL build config
- Code bloat reductions:
- Data sections now marked as zero-init
- synclib_init rewritten to avoid it pulling in code for unused features
- spinrw write lock functions rewritten to use spinrw_write_try_lock
- Use
RISCOS_ZM
to detect when module-style data relocation is required, instead ofzM
(needs RiscOS/BuildSys!52 (merged))