[split] finagle-doc: Update URL to Finagle blog post. Motivation: Outdated URL

Modification:
Updates URL to finagle blog post

Results:
Fewer dead links on OSS docs site.

RB_ID=298823
[split] Make OstrichExporter compatible with Ostrich CommandHandler.

CommandHandler uses HTTP query parameters instead of headers for the
"period", "namespace", and "filtered" params.

This changes modifies OstrichExporter to retrieve the params from the
query string instead of the headers and adds the "filtered" parameter.

The Ostrich filter regex may be provided via a global flag.

RB_ID=296653
[split] finagle-thrift[mux]: Reintroduce ClientIdContext by default

The crux of the change:

- Support ClientIds at the protocol level in finagle-thriftmux.
- Load ClientIdContext via the ServiceLoader mechanism by default in
  finagle-thrift. In the vanilla finagle-thrift case, we'll be
  double-setting ClientIds in both the Context and the Thrift header.
- Adds a "thriftmux server + finagle-thrift client" end-to-end test.

RB_ID=285803
[split] finagle-memcached: Mark test "not migrating yet" as flaky

RB_ID=299045
[split] ForkJoin scheduler: first draft

A scheduler based on the JSR166y fork/join implementation. This
scheduler will balance tasks (via work stealing) across several
threads while retaining a target level of parallelism.

It also manages blocking, which is threaded through from Await; thus,
with this scheduler, applications can block with only a small penalty,
while avoiding the possibility of deadlock due to the parallelism
invariant ??? progress is guaranteed.

Currently, only future blocking is managed, this may be extended in
the future.

I think we can actually come up with a better work-stealing scheduler
for Finagle, but this is a good first approximation and has shown very
promising results in the adshards.

RB_ID=288821
[split] Finagle: Use InetAddressUtil.Loopback instead of InetAddress.getLocalHost

`InetAddress.getLocalHost` will fail on hosts whose hostnames are unresolvable.
This change improves test portability, since they should be more resilient to
being run on hosts with unresolvable localhosts.

RB_ID=299543
[split] [3rdParty] Updating common_internal.zk-utils

Motivation:
The zk fix in c.t.c.zookeeper.client wasn't used by people transitively depending on it via an old version of common_internal.zookeeper-utils.

Modification:
Update everyone to the latest version of common_internal.zookeeper-utils

Result:
Everyone is using the latest c.t.c.zookeeper.client

RB_ID=299639
[split] Use ephemeral ports in all core library unit tests

Tests that hardcode ports tend to fail on CI machines. I grepped around our core
libraries and found a bunch of instances where we new up `InetSocketAddress`es
with known ports. This change makes use com.twitter.util.RandomSocket in all
such tests to make them use ephemeral ports.

RB_ID=299329
TBR=true
[split] finagle-thrift: Do not rely on ThreadLocal'd ClientIds in TTwitterFilter

The most recent ClientIdContext release caused issues seemingly related to the
ThreadLocal'd ClientIds set implicitly by ClientIdContext.

This change has two parts:

- Client-side: In TTwitterFilter, pass the constructor-supplied ClientId as the
  value to ClientIdContext rather than relying on the implicitly supplied by
  `Context.emit()`.
- Server-side: Put precedence of `header.client_id` above the ClientId embedded
  in `header.contexts`. These two values *should* be equal in all cases, but
  they don't seem to be in this macaw-relevance/Gizmoduck case. In this observed
  case, putting precedence on the non-context-based ClientId will fix the
  failure mode in currently-deployed services.

RB_ID=301507
[split] Fix link to Twitter engineering blog for Finagle blog

Signed-off-by: Ruben Oanta <roanta@twitter.com>

RB_ID=301305
NO-QUEUE=true
[split] finagle-mux: don't delegate empty dtabs

The current version of com.twitter.finagle.factory.Refinery uses Dtab
reference equality to check whether the base is equal to the current
Dtab. Delegating empty Dtabs thus breaks this.

RB_ID=302725
[split] ServerSets2: reset value on SyncConnected

Op watches propagate errors, but didn't reset the original value when
we get a SyncConnected state.

We might consider revisiting this error handling strategy, dealing
only with the global session watch, blisfully ignoring errors on op
watches.

RB_ID=299081
[split] finagle-stats: Upgrade metrics dependency to the latest version.

Motivation:
A bug has been recently fixed in metrics (error in value of Histogram.{min/max/avg...}).
This change update all usage of metrics to the latest version.

Modification:
Update pants config file and maven pom

RB_ID=302167
TBR=true
[split] finagle-redis: Add SINTER command to redis client

Signed-off-by: Ruben Oanta <roanta@twitter.com>

RB_ID=303229
[split] finagle Stack: prepend syntax

The current way to prepend a Stackable to a Stack is

	stackable.toStack(stack)

but Scala already has a natural syntax for this!

	stackable +: stack

so let's use it.

RB_ID=303163
[split] finagle/S2: introduce address stabilization, stats

An Event-based address stabilizer for S2.

  /**
   * Stabilize the address relative to the supplied source of epochs,
   * such that any removed socket address in an Addr.Bound set is
   * placed in a limbo state until at least one epoch has passed.
   *
   * In practice, the source of epochs must correlate with a failure
   * detection interval; we consider an address dead if it has not
   * been observed for at least one epoch, and no failures
   * (Addr.Failed) have been observed in the same interval.
   */

RB_ID=299585
[split] Finagle: Add Mux and ThriftMux Clients based on com.twitter.finagle.Stack

In the short term, in order to roll out Mux support in ClientBuilder we need to
provide Mux protocol `Stack`s. The crux of this change is the addition of
`MuxNetty3Stack` and `ReusingPoolModule` for use in creating a Stack-based
MuxClient. This is then used to provide a Stack-based ThriftMuxClient. In
support of this, I added a `Stack.Role` construct that takes the place of the
inconsistent `id` strings used in Stack/Stackable.

RB_ID=276105
[split] finagle-redis: Fixed the empty string issue of MBULK_REPLY

Signed-off-by: Steve Gury <stevegury@twitter.com>

RB_ID=306313
[split] finagle-http: compress text-like content-types by default

RB_ID=304835
[split] Upgrade Netty from 3.8.0 to 3.8.1

Motivation:
Dan Brown (from the open-source community) discovered a bug in Netty HTTP
content compressor with an empty response.
More information available here: https://github.com/twitter/finagle/issues/249

Modification:
Upgrade Netty to the latest version
(this upgrade only contains the fix for this particular problem)

Result:
Confirmed by Dan Brown, the fix is working.

RB_ID=308757
TBR=true