This will give us a clearer separation between the core reporting code
(which shouldn't change very often) and the handler code (which is
likely to change more often as we add new handlers and new features to
existing handlers).
It is also the first (baby) step on the path of making handlers
pluggable so third-parties can easily drop their own in.
Change-Id: I648df057d2ff719a2a81398afc80aaef9225ff5c