Global: Allow building with soft-float on M4F cores

We currently default to "-mfloat-abi=hard -mfpu=fpv4-sp-d16" for M4F cores.
Keep that default, but allow building with "-mfloat-abi=soft" if desired.
For this, we introduce the NO_HARD_FLOAT flag. See README for details.