[split] util-core: Add deprecation of RingBuffer to changelog

RB_ID=481739
[split] util: Add self-type to `Promise.Detachable` and augment Promise Scaladocs

Problem

The `Promise.Detachable` trait is currently fully generic, although
it's intended to be used exclusively as a Promise mixin.

Solution

Add a `_: Promise` self-type for the Detachable trait. Unrelatedly, a few
Promise-related Scaladocs are also fixed/improved.

RB_ID=481681
[split] removed IVar and IVarField Problem

IVars originally backed the twitter Future implementation, but the IVar behavior was inlined when we reimplemented Futures. Now, IVars support a subset of Promise behavior and are rarely used. We found that they were introducing a cyclic dependency between scala and java code, which was fragile and breaking some internal tools.

Solution

Remove IVar and IVarField

Result

IVar won't be available.

RB_ID=477763
[split] Add asynchronous cache with TTL to util-cache

Problem

Services sometime provide endpoints that don't change very frequently,
for example the trend service's list of supported locations.  In some
cases these responses are quite large so we want to minimize how often
the data is requested.  We need a lightweight way to cache successful
responses of these methods while retrying on failures that allows a TTL
so results are periodically refreshed.

Solution

This change adds 'Refresh' which takes a TTL and function that returns a
future.  The first call to the memoized future calls through to provider
function, but subsequent calls will just get the cached copy until the
TTL expires, after which it will be requested once.  Special care has
been taken to handle race conditions on requests.

Result

After this change, clients will be able to wrap any function that
returns a future with this utility that caches responses for up to the
specified TTL.

RB_ID=480295
[split] util and finagle: fix compiler warnings

Fixes to some of the more trivial compiler warnings in finagle and
util.

RB_ID=473425
[split] Better names for Buf.slice() paramters.

Current parameter names ('i', 'j') are too short for the method
parameters scope and also they don't speak for themselves.

RB_ID=480063
[split] Remove empty file

Remove empty MemoizedFutureWithTTL.scala which was inadvertently
included in previous commit

RB_ID=484041
[split] birdcage: Add provides clause for util-core-java

- util-core's java code no longer has a cyclic dependency with the scala code, and needs to be explicitly marked publishable by pants.

RB_ID=483885
[split] use org.apache.thrift libthrift 0.5.0-1 universally

tl;dr: 0.5.0 has a bug, 0.5.0-1 doesn't.  See THRIFT-223 for the explanation of the problem.

Exceptions:
scrooge-generator (0.8, only used by eventbus-thrift and some leaves)
scrooge-benchmark (0.8)
ostrichagg (0.8, I don't know why, but I believe it's a leaf)

Note this *downgrades* scrooge-core from 0.8 to 0.5.

libthrift 0.5.0 and 0.5.0-1 were published by twitter, not Apache.
They're publicly available on maven.twttr.com.

Note the 0.5.0 pom.xmls (thrift and org.apache.thrift) are empty.  The
0.5.0-1 pom.xml has dependencies on slf4j-api and commons-lang.

RB_ID=474051
[split] util-core: Add `Activity.future`

Problem

While refactoring some code in finagle-serversets, I found a need to
make a leap from a Var to an Activity. A direct Var->Activity mapping
doesn't make a lot of sense, but I found that a Future->Activity mapping
suited the job (via `Activity.future(Var.toFuture)`).

Solution

Add `Activity.future`. See Scaladoc for details.

RB_ID=481091
[split] util: Clarify Scaladoc of `Promise.attached`

RB_ID=482865
[split] scribelibe_2.10 0.0.10 + a bunch to birdcage

RB_ID=482663
[split]  [util-app] add App registration

 Problem:

 It's sometimes useful to get a reference to the currently running App.
 You can hack your way their with a premain Hook, but I thought it would
 be easier to provide a simpler way.

 Solution:

 - Add an App companion object
   - Add a register(app: App) method, last write wins
   - Add a registered: Option[App] method to obtain the registed App, if any
 - in App's main method, call App.register

 Result:
 You can call App.registered to get the currently running App, if any

RB_ID=487357
[split] util-logging: factor out testing code into new package util-test

Problem

util-logging exported a dependency on scalatest. This causes broken
builds when used in Science, which is still on Scalatest 1.x.

Solution

Factor this out into its own package, and use selectively.

before% ./pants goal dependencies twitter-server/src/main/scala | grep scalatest
3rdparty:scalatest
org.scalatest:scalatest_2.10:2.2.2
before%

after% ./pants goal dependencies twitter-server/src/main/scala | grep scalatest
after%

RB_ID=482011
[split] bump util to 6.22.2-SNAPSHOT

RB_ID=493423
TBR=true
NO-QUEUE=true