Description
While working on JAMES-3182 I realized the SearchQuery object is mutable and thus can change upon processing.
Clearly, this is a non desirable, potentially buggy behaviour, we should make that SearchQuery immutable.
Proposition is to leverage the builder pattern to do so.