Add analytics tracking on browse pages

Return defereds on all the methods called in the popState method. Add a
new done to those defereds to send analytics data.

Move the pushState to after render of the new data on navigation and add
analytics tracking next to it. After render feels better just incase
they abort during render.