Reporting, Phase I

Hey @seven1m,

I've reapplied the reporting changes I made in #189 and #237 on top of the latest version of master so this should create a cleaner commit.

Also did some refactoring - split out the common elements for date formatting into separate partials so that we can reuse them.  

Tests are all passing locally so if they don't here its all travis' fault.

:smile: 
Place the . on the previous line, together with the method call receiver.