Implement collection builder.

plone.app.collection collections use plone.app.querystring, making it really
hard to just set a query.

The ``from_query`` method on the builder tries to convert a catalog query into a
querystring-list so that it can be stored on the collection.
However, this is very limited; it currently only supports strings and lists as values.

For more complicated queries the querystring-list has to be built manually and
set with the ``having`` method.

@maethu :unamused: