Added ability to create hierarchical TOC

Right now, the lib creates only flat navigational structure. There's no way to build a tree.

This pull requests allows to pass a $depth parameter to spineAddItemRef() function, which is used to build tree-like navMap later on.

Here's example of what it allows to accomplish:

```
<spine id="spine" toc="ncx">
    <itemref idref="copyright" linear="yes" depth="1"/>
    <itemref idref="praise" linear="yes" depth="2"/>
    <itemref idref="node-2" linear="yes" depth="1"/>
    <itemref idref="node-3" linear="yes" depth="2"/>
    <itemref idref="node-1" linear="yes" depth="3"/>
...


<navMap>
    <navPoint id="navpoint-1" playOrder="1">
        <navLabel>
            <text>Design Patterns</text>
        </navLabel>
        <content src="copyright.html"/>
        <navPoint id="navpoint-2" playOrder="2">
            <navLabel>
                <text>Praise for Design Patterns</text>
            </navLabel>
            <content src="design-patterns-1.html"/>
        </navPoint>
    </navPoint>
    <navPoint id="navpoint-3" playOrder="3">
        <navLabel>
            <text>Introduction to Design Patterns</text>
        </navLabel>
        <content src="node/2/index.html"/>
        <navPoint id="navpoint-4" playOrder="4">
            <navLabel>
                <text>Creational patterns</text>
            </navLabel>
            <content src="node/3/index.html"/>
            <navPoint id="navpoint-5" playOrder="5">
                <navLabel>
                    <text>Abstract Factory</text>
                </navLabel>
                <content src="node/1/index.html"/>
            </navPoint>
        </navPoint>
    </navPoint>
...
```

And of course, if you don't pass anything, it still produces valid flat navigation.