implement reports via metaclasses

Change-Id: I86cc99aa8a120c9ef80a52b283c138c54eb24384
Reviewed-on: http://review.couchbase.org/27598
Tested-by: buildbot <build@couchbase.com>
Reviewed-by: Pavel Paulau <pavel.paulau@gmail.com>