First version of the report

The overall logic of how charts classes can be written should be pretty stable
now. More reports will be added. Also, caching prepared data will be probably a
good thing to do.