[split] util-{app,jvm}: various small improvements from gcflow

RB_ID=265397
[split] Var: fix an iatrogenic concurrency bug

The current observe code is:

    val o = O(obs, depth, version.getAndIncrement())
    val newOwner = obs.lease(this, o.version)

    if (newOwner) {
      obs.update(state.get.v, this)
      cas(_ + o)
      ..

it was possible here to miss updates between updating the observer for
the first time, and CASing in the O representation, leaving the
observer with a stale value.

The fatal flaw here is that updating observers has to be atomic with
publishing values. (This really violates the posited single-owner
policy.)

I took this opportunity to simplify the code for Leases, pushing in
most of the single-owner responsibility there, and reworking the API a
bit. The result is that the code is much simpler to reason about: we
have strong guarantees around atomic state transitions, with the
ability to resolve races by maintaining value versions.

RB_ID=268363
[split] util-zk: scalatest as test dep

RB_ID=272257
[split] util-logging: Increase richness of file-logging flags

Adds flags for FileLogger's `rollPolicy`, `append`, and `rotateCount`
constructor arguments.

RB_ID=270925
[split] util: Drop util-eval dep from util-zk-common, which pulls in scala-compiler unnecessarily

RB_ID=278855
[split] LocalScheduler: improve concurrency by sampling less

Change SampleSize from 50 to 1000.

getCurrentThreadCpuTime() holds a global lock, so can limit concurrency.

Also fix minor bug in usrTime, cpuTime, numDispatches potentially undercounting.

RB_ID=280549
[split] Option to enable thread pool scheduler in finagle, and fix the shutting down RejectedExecutionException's.

The option is in finagle exp now, users will be able to enable this without code change.

Don't have a fix for setUnsafe conflict when the user is also using setUnsafe. The one comes later will be used as the final scheduler.
And don't have a fix for errors caused by a executor with a bounded capacity.

RB_ID=266095
[split] Revert "Option to enable thread pool scheduler in finagle, and fix the shutting down RejectedExecutionException's." (It's breaking the build on JDK6 machines)

RB_ID=282863
NO-QUEUE=true
[split] Re-enable "Option to enable thread pool scheduler in finagle"

It's previously reverted in http://go/rb/282863 , since we still have environment building using jdk6.

Changed to use reflection to create the LinkedTransferQueue at runtime to avoid build time errors on jdk6.

RB_ID=282909
[split] twitter-server: Report on deadlock conditions in admin/contentions

RB_ID=279173
[split] finagle-kestrel: Use Var[Addr] as underlying cluster representation

Moves finagle-kestrel away from `com.twitter.finagle.builder.Cluster`.

Changes outside of finagle-kestrel:

- finagle-core: Add Addr.Bound.apply(j.u.List) method for Java compatibility
- finagle-core: Change Addr factory functions' to return Addrs instead of the
  specific subclass they produce (was blocking Java compatability)
- util-core: Add `Try.exists(p: R => Boolean): Boolean`

RB_ID=243053
[split] util-core: Add a Scaladoc for com.twitter.util.RandomSocket

RB_ID=286443
[split] Get birdcage on latest com.twitter.common* libs CSL is trying to get birdcage and science on the same version of finagle/util/commons/etc, so this is step one before we publish finagle and util.

RB_ID=287175
[split] Update 3rdpaty zookeeper client Motivation: The new released version of c.t.common.zookeeper-client 0.0.48 contains a fix that solve the recent issue with StabilizingGroup

Change:
Update the version number of the zookeeper client in the 3rdparty build file

Result:
New builds use the new released library

RB_ID=288563
TBR=true
NO-QUEUE=true
[split] release 6.12.0 of util

RB_ID=288955
TBR=true
[split] Upgrade everyone to the new c.t.common.server-set A critical bug have been found in c.t.common.zookeeper.client, this change upgrade everyone with the fixed jar.

RB_ID=289319
[split] util-logging: assign better names to QueueingHandler and ScribeHandler threads

Motivation:
Each QueueingHandler creates an anonymous thread. Each ScribeHandler creates
a named thread pool (capped to 1 thread) with the name "ScribeFlusher". Less
generic names will make it easier to understand the source and purpose of
each thread in the JVM when looking at a stack dump.

Modifications:
1. Set the thread name in QueueingHandler.
2. Set a better thread pool name in ScribeHandler using the scribe category.

Result:
1. Each QueueingHandler thread now names its thread "QueueingHandler"
2. Each ScribeHandler uses "ScribeFlusher-" concatenated with the scribe
   category as the prefix for its thread pool.

RB_ID=289155
[split] release util version 6.12.1

RB_ID=290145
TBR=true
[split] util-core: Check whether JVM supports thread measurement before measuring

Add `ThreadMXBean.isCurrentThreadCpuTimeSupported` before calling
`ThreadMXBean.getCurrentThreadCpuTime()`.

Signed-off-by: Evan Meagher <evm@twitter.com>

RB_ID=289705
[split] Consume the newly published gizmoduck artifacts in birdcage Details here - https://jira.twitter.biz/browse/DPB-1266

RB_ID=288257
TBR=true