Refactored an iota block to use iota.
Semver updates.

- s/MMC_VERSION/MMC_SEMVER/g
- MMC_SEMVER was originally implemented with literals. The values
were explaned in a comment. Now they're preprocessor defines.
- Added semver_c. It uses MMC_SEMVER's preprocessor defines to
match semantics at runtime.
Merge branch 'master' into audio
Mucking about with audio.

Did something interesting with stream formats, parspec, and constexpr.
I'm not sure how I'm going to specify the streams. We obviously need
a runtime value that we get from the sound api, but we also need a
compile-time value that we can parspec on. Technically, we have both
now, and just need a map to go from runtime to compile-time, but it
feels very, very messy.