single file json db -> using tinydb

the following collections exists

[ posts ]
[ pages ]
[ templates ]
[ tags / categories ]

- when adding a post only that page and the main page are compiled
- when adding a post tags are extracted from it, and only these tags atom feeds
are compiled

# example post record, and page records
[ {_id:1,  title: "this is a post title", "published": [true, false], tags: ["foo,
bar"], author: "mr. blogger", date: 2014-01-11, source: "path/to/file.md",
  output: "path/to/file.html", template:"template_name"}]

# example template record
[ {"template_name": "basic.html", path: "/path/to/template.html" } ]

tag :
# { tag_name : "foo", posts_id: [ 1, 2, 3, 4, 5 ] }

----

rendering should be done with a call to a rendering function, e.g jinja2
or any other string manipulation function. This will make testing is easier!

tinydb, does not have a unique id... when creating a new tag, first check
it does not already exist.

# Todo:
# https://pypi.python.org/pypi/watchdog/0.8.3
# port some jekyll themes
done: ~~replace metadata format with with metadata block, drop YAML dependency~~
  see https://github.com/trentm/python-markdown2/wiki/metadata