[Breaking] Refactored and implemented facets

* Added all missing facets
* [Breaking change] Facets do no longer accept field names,
  queries etc. in call to `New...Facet`. This is to align with
  the original Java source. You will get a compiler error; so
  fixing these issues is straightforward.