New FEC framework, with unit tests.

For review. This works, but it's not to be merged just yet because nothing uses it yet. The new post-db4o client layer will use it heavily.
In any multi-segment splitfile there will be a maximum of 2 "keys", e.g. most segments are 128/128 and some are 127/129, except for cross-segment splitfiles that might have a third configuration (key, data:check count), but where we are likely to decode a whole bunch of segments over a short period of time as cross-segments enable decoding of more segments. So yes, it is absolutely worth it IMHO.