[split] Improve GC profile of Var and Group With the current implementation of Var, calling apply() allocates a couple of objects and increments the version variable. This causes some GC problems, and will violate the observer ordering guarantee when the version integer rolls over.

RB_ID=202893
[split] birdpants: fixing 3rdparty tree references

RB_ID=195557
TBR=true
[split] util-core: Fix broken string-deserialization in Buf.Utf8.unapply.

RB_ID=208574
[split] util-logging/App.scala: use ConsoleHandler when outputFlag is /dev/null

(also wires level to FileHandler, which was missing before - not sure if that matters)

CSL-628

RB_ID=209538
[split] Var: some empirically useful add-ons

Var.observeTo: stream var updates into a reference
Var.observeUntil: Var predicate
Var.collect: collection of Var into var of collection
Var.async: asynchronously updated Vars

RB_ID=210322
[split] [util-core] Introduce Try.collect(), analagous to Future.collect

RB_ID=210184
[split] util: minor reductions in memory allocations

- Future.{join, collect} should combine onSuccess/onFailure
- remove boxing from TimeLike.compare

RB_ID=211418
[split] bump util to 6.7.1-SNAPSHOT

RB_ID=212150
TBR=true