Reporting Phase II: Custom Reports

Create Custom Reports feature.

This feature allows an end user to create a report with a degree of control not afforded by dossier.

Report Administrators are able to define 
1. what data set they would like,
2. how that data should be formatted (within reason), and;
3. simple filters which reduce the data set reported.

Once defined, a report can be run by another end user by assigning them the "Run Reports" security option.

Here's a 10,000 foot view of how it works:
Report Administrator goes to report dashboard, and selects Add New Report from the Custom Reports box.
![selection_0012](https://cloud.githubusercontent.com/assets/7445602/5040868/925f570e-6c1a-11e4-8f83-4c52d4936ac2.png)

Select a title and category, and enter whatever content you want to have in the report. Report Body field is rendered by a Mustache loop.
![selection_0013](https://cloud.githubusercontent.com/assets/7445602/5040892/1da5bd44-6c1b-11e4-944e-ec861124f58c.png)

![selection_0014](https://cloud.githubusercontent.com/assets/7445602/5040896/38552c9c-6c1b-11e4-9e68-435ee587c2c8.png)

Optionally, add filters. Format is: field:value . Separate multiple values with a ';'.
Save:
![selection_0015](https://cloud.githubusercontent.com/assets/7445602/5040922/c5c7e448-6c1b-11e4-82e8-19b2dcaf269a.png)

Hit view or select the title to run the report. This will redirect to the show page and render the report.
![selection_0016](https://cloud.githubusercontent.com/assets/7445602/5040932/eec82d3a-6c1b-11e4-8662-defdda00247d.png)

Testing: I've got us to a gig of tests with this feature. 'nuff said.
Wow, very lispy! Let's change to `filters.count(':')` -- also you don't need the `to_i` since it should always return a number.