Make facet expressions API consistent with filter expressions.

There is now `FacetExpr`, analogous to `FilterExpr` which provides
a nice little DSL for creating facet expressions.

Examples:
`FacetExpr.stringAttribute("color").terms()`
`FacetExpr.price.rangesMultiSelect(r1, r2).selected(r2)`

Compared to current version:
`new FacetExpressions.Terms("color")`
`new FacetExpressions.Price.RangesMultiSelect(list(r1, r2), r2)`

The DSL is implemented as a thin layer on top of the expression
classes, so the examples shown above are simply syntax sugar
for the code shown below them.