Support for custom expressions in search engine

optional map of expressions can be passed to the client if they exist they are simply converted to a json object and sent to the search engine

expressions are not formatted they rely on the schema in the given BC and as such are simply represented as strings in the framework

Signed-off-by: Robin Smith <robin.smith@clicktravel.com>
It would be preferable to use a constant representing the "default" SearchOptions rather than creating a new object for every search e.g.

public class SearchOptions {
...
public static final SearchOptions DEFAULT = new SearchOptions();
...
}
.......
public class CloudSearchEngine {
...
return search(query, start, size, documentClass,SearchOptions.DEFAULT);
...
}