Changed structure of controller to use a lazy loader

This also means that the post should be accessible as a method, not a
variable. I find it's easier to maintain a lazy loader as the post is
only set from one place. If another place needs a different type of
post, it might be a hint that a new controller is needed
Implement an edit button to use in post which close #33

The goal is to have the edit button accessible in a post for someone to
add in their theme. The theme doesn't have to look for administrative
privileges. If the visitor isn't a logged user, the link won't show up.

Tests & implementations are included in this commit.