py: Automatically ake __new__ a staticmethod.

Addresses issue #622.
tests: Rename test scripts, changing - to _ for consistency.

From now on, all new tests must use underscore.

Addresses issue #727.
binary: Factor out mp_binary_set_int().
Disable IRQs around sdcard reads.

Once the code switches to using DMA, this can be removed.
stmhal: Protect SD_WriteBlocks by IRQ disable/enable pair.
Merge branch 'dhylands-fix-sdcard-read'
moductypes: Foreign data interface module, roughly based on ctype ideas.

But much smaller and memory-efficient. Uses Python builtin data structures
(dict, tuple, int) to describe structure layout.
moductypes: Add symbolic constants to specify bitfield position/length.