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 return value of encode is supposed to reflect how much of the buffer is actually changed. In the new code I think it would make more sense to move the ``+ SuperCoder::symbol_size()`` to the place where the buffer is actually modified. So probably in this case that would be the linear_block_encoder .. since that is the layer that writes the ``symbol_size`` bytes to the buffer that should also be the layer to return that it wrote that much.

I hope that makes sense :)