Change hoedown_buffer_new_callback to hoedown_buffer_init.

The caller of the function is responsible for allocating
the general buffer struct. The provided realloc and free functions
will grow the data field in the buffer when needed.

hoedown_buffer_free_data now only frees the data while
hoedown_buffer_free frees the struct as well. hoedown_buffer_free
should be used only with hoedown_buffer_new.

This gives the user full control over memory.
The user can now decide what memory functions to use
for hoedown_buffer and what memory functions to use
for the buffer containing the data.