This refactors the cloud aggregation to make use of the
SearchSQLBuilder, this in turn allows for reusing much but not all of
the default parameter handling.
By allowing joins (on pid) and setting filters we can output clouds
based on the same data as a shown aggregation.
This allows users to set custom CSS classes on aggregations potentially
restyling them differently for different use cases.
This makes startScope and finishScope part of the public API of the
Aggregation class. It should no longer be called within render() but is
instead called outside.
This might potentially break plugins implementing their own
aggregations. Needs to be checked