Merge branch for draft and history functionality

Add ability to create drafts, which are public versions.
Replace all versions page with history page, which also shows drafts.
Refactor lots of examples and code.

Fix #4.
Fix #13.
Fix #32.