Move header to payload front

I moved the header to the front of the payload buffer, like so:
```
+---------------+-------------------+
|   symbol id   |    symbol data    |
+---------------+-------------------+
```
I did so in the interest of making the API more simple.

This could potentially cause performance issues, but I haven't been able to get any definitive results by running  the benchmarks though.
The ``symbol_id_decoder`` ``SuperCoder::read_id()`` does not return a size but here ``SuperCoder::write_id()`` does. I guess it is actually the same for ``encode`` and ``decode``. Is that ok - or is it inconsistent. It is not totally clear to me which is the best.