Mended popall_ret()

Realised that popall_ret could not work with the _pre_op metamacro set
up as it was.
Add an LCG PRNG
Hoist common baremetal code
Add a baremetal snake program

This program can act as a sort of screensaver, but mostly it is just to
have something to show off that is a bit less drab than a times table.