A long overdue fix. Uses board-specific manifest.py files to freeze Python modules, instead of polluting ports/rp2/modules.
Simplify the build to use *only* local (to pimoroni-pico) copies of MicroPython board config dirs. This allows us to specify MICROPY_C_HEAP_SIZE (and potentially other options) in board config rather than at build-time.
Move out of the USER_C_MODULES .cmake file.