Add ancestry to TOC anchors

This is to with issue gollum#678.

Refactored the TOC filter a bit, broke the `process` method out into 3 other methods:

* `generate_anchor_name`
* `add_anchor_to_header`
* `add_entry_to_toc`

Normalized the anchor names. Allowed only words, digits and non-english characters.  Any non conforming character is replaced with a single dash; `-`.

Got the ancestor names generating like so:

```
# Summary
## Horse
# Summary
## Horse
```

Will generate:

```html
<p><strong>TOC</strong></p>

<h1><a class="anchor" id="Summary" href="#Summary"><i class="fa fa-link"></i></a>Summary</h1>

<h2><a class="anchor" id="Summary-horse" href="#Summary-horse"><i class="fa fa-link"></i></a>Horse</h1>

<h1><a class="anchor" id="1-Summary" href="#1-Summary"><i class="fa fa-link"></i></a>Summary</h1>

<h2><a class="anchor" id="1-Summary-horse" href="#1-Summary-horse"><i class="fa fa-link"></i></a>Horse</h1>
```

I think it's good.  Tests are passing locally.