Add support for more dynamic templateContexts

Hi,

Made some changes that makes it possible to hook into parser and annotate with metadata.

+ Always add source and destination file to templateContext
+ Allow for parser that may find metadata
+ Make parser injectable through the .parser option

The reason I needed this was to add support for dynamically generated menus.

An example parser that adds support for YAML metadata can be found here : https://github.com/tinymesh/tm-docs/commit/3004136265432a1f83ff99bf3eddc34fefc73a48.
The metadata can then be used from the template.