Allow sample sizes that are several bytes, not just one.

Not sure if this is the best way to do this, it might work out neater and faster with `_Generic` but this was the simplest first cut I could think of.
Ooh er!