Add 'author' role. Closes #72.
Re-organize code.

- Move server methods to model file
- Group publications together
Integrate with shareit package. Closes #70.
Change all template overriding to use UI.dynamic. Closes #74, I guess.
More correct way to publish for logged in users
Merge remote-tracking branch 'upstream/master'