Support Table of Contents (aka T.O.C.) generation for Posts

This generation is completely optional and only works if TOCs are enabled in blog `config.yml`, like this:

```
hoep:
    render_flags:
        toc: true
```

In that case, all posts get an additional attribute, `item.toc`, which is an object that represents a TOC tree, starting from a root (empty) leaf. 

#### Leaf Attributes

Every leaf has these attributes:

* `leaf.hlevel` — the value of `n` from `<Hn>` tag which was used to generate this leaf;
* `leaf.level` — how deep is level in a tree, `0` is root;
* `leaf.parent` — parent leaf, `None` for root node;
* `leaf.children` — leaf children, in array;
* `leaf.text` — `<Hn>text</Hn>`, text from inside of a header tag, `None` for root;
* `leaf.identifier` — anchor ID, from `<Hn id="#identifier">text</Hn>`, `None` for root;

If there were no headings found in a post, root leaf has no children (array is empty).

#### Example Macro

Example macro to generate an `UL`-tree from this object (`_templates/macros.html`):

```
{% macro toc(leaf) %}
    {% if leaf %}
        {% if leaf.parent %}
            {# the root leaf has no parent #}
            <li>
                <a href="#{{ leaf.identifier }}" title="{{ leaf.text }}">{{ leaf.text }}</a>
                {% if leaf.children %}
                    <ul>
                        {% for subleaf in leaf.children %}
                            {{ toc(subleaf) }}
                        {% endfor %}
                    </ul>
                {% endif %}
            </li>
        {% else %}
            {# the root leaf should just fall inside #}
            {% for subleaf in leaf.children %}
                {{ toc(subleaf) }}
            {% endfor %}
        {% endif %}
    {% endif %}
{%- endmacro %}
```

#### Example Macro Usage

`_templates/layout.html` or `_templates/post.html`:

```
{% from 'macros.html' import toc as build_toc %}
```

`_templates/post.html`:

```
{% if post.toc %}
    {% block toc %}
        <nav>
            <h4>Contents:</h4>
            <ul>
                {{ build_toc(post.toc) }}
            </ul>
        </nav>
    {% endblock %}
{% endif %}
``` 

Cons:
I haven't found a way to return TOC object properly from a parser, so now it returns a tuple from `.render` method in case if TOCs are enabled, very possibly it's not a honest way to do it :).