Redcarpet v3.2.0
Change the bufcstr function's prototype

Since we are only using this method inside a callback under the hood
(i.e. `header_anchor`) and we are dealing with const-qualified buffers,
let's change the method's prototype in order to avoid warnings.
Rewrite anchor generation in pure C

In order to make port to other languages easier and for the sake of
fastness, let's rewrite the anchor generation without the Ruby C API.

The necessary code is pretty straightforward. We need to remove any
extra white spaces and down-case the whole string. Then we can replace
spaces with dashes.

As for the stripping of inline HTML elements, we just need to rely on
`strtok` that will tokenize the string according to either the opening
or closing chevron (< or >). Thus, once every two times, the yielded
token is the content of a HTML tag, so we don't need to copy it to the
output string.
Move the regression test regarding extra spaces

This regression test should be gathered with the other HTML_TOC's ones.
Simplify a bit the retrieval of `nesting_level`

Instead of passing the fetched value to the initializing function, let's
directly write the value inside the struct's member.
Merge pull request #426 from vmg/toc-anchors

Rewrite anchor generation in C
DRY up the HTML_TOC render tests

Introduce a `render` helper that will handle the rendering according to
the `@renderer` instance variable. This helper takes the Markdown text
to parse and optionally some options in a hash or array fashion (the
latter will get translated to a Hash).

The default renderer is Redcarpet::Render::HTML, obviously.
Strip out non-alphanumeric chars from anchors

In order to generate valid anchors, let's remove non-alphanumeric chars
from the output string. The generated strings are along the lines of
strings returned by Active Support's `#parameterize`.

Fixes #385.
Merge pull request #428 from vmg/parameterized-toc-anchors

Strip out non-alphanumeric chars from anchors