WIP #16464 generalised zipWith for up to 22 param functions

Train rides indeed are great for some kinds of work... :-)

Uses sbt boilerplate plugin (it's awesome, kudos @jrudolph) to generate all the 22 versions of the zipwith classes.
See "can work with 22 params" test to see what this effectively means.

TODO:
- [x] java api? - now *type-safa*!
- [ ] maybe be able to avoid `def f: Any`?
Small tip: eta expansion only applies to the case of leaving out complete argument lists, your example above is a “short-hand function literal” and not eta expansion. The difference is that the former affords nice type inference while the latter will not work without ascriptions. Martin said that he’ll fix that in Dotty ;-)