first step towards push state

- server renders html or json depending on accept headers
- json contains pre-rendered html for sidebar and content
- client listens to anchor clicks and does json request for the resource
working push and pop state

- pushing sidebar and content as state when json request returns
- on pop state just updating page with pushed state without a server request