Blocking zip operator

Proposed solution to #867

- Added overloads to zip many and zip 2 only. If my approach is favorable, other overloads can be added.
  - Javadoc might need some rephrasing.
- Contains fix for #868 but no test.
- Overloads take a bufferSize > 0 indicating the queue size, bufferSize <= 0 behaves as the original zip.
  - Due to the internals of zip, a bufferSize of 0 does not work (i.e., everyone blocks on add and noone can call tick). For that, zip would need different internals with CyclicBarrier and other magic. ~~**Should I work on this case as well?**~~
- Source completion is blocking as well right now; for example, an empty producer with a slow partner will complete only if the slow partner fires its first event. ~~**Should it terminate as soon as possible?**~~

Update:

- Added 0-length buffering mode, bufferSize < 0 now indicates unlimited buffering.
- Changed buffered mode to finish as soon as possible