Modifying Mersenne WAL to use ragel

Modified the current implementation of
packing and unpacking WAL log information
to use ragel and messagepack instead of
protobuf.
Original function code suggests that `wal_log_write()` is expecting a `malloc()` allocated buffer, and its ownership is transferred to the callee.

WAL will be corrupted by newer values overwriting the old ones if we reuse the buffer.

I have to admit that I missed this fact during the review of earlier commits in this pull request, hence my false suggestion to reuse the sbuffer, stored somewhere in the context. Sorry for that.

May I ask you to remove the buffer from the context structure and allocate it on the stack of `wal_write_state_to()`?
Then the function `msgpack_sbuffer_release()` ought to be used to "steal" the data pointer from the buffer, and pass it to `wal_log_write()`. No `msgpack_sbuffer_clear()` wound be required, so disregard my previous note, just using `msgpack_sbuffer_init()` will do.