finagle-thriftmux: Add test for ThriftMux client, Thrift server

Problem

No test coverage for the behavior of a ThriftMux client
talking to a Thrift server.

Solution

Add a test case that exhibits the expected, unsupported
behavior.

RB_ID=541776
[finagle-httpx] Increase test coverage

Problem

Test coverage is thin in some parts of finagle-httpx.

Solution

More tests to increase coverage.

Result

                    line         branch
c.t.f.httpx         76% => 83%   30% => 33%
c.t.f.httpx.codec   75% => 93%   52% => 70%
c.t.f.httpx.filter  84% => 95%   46% => 46%
c.t.f.httpx.netty   78% => 90%   44% => 44%
c.t.f.httpx.path    62% => 89%   16% => 40%
c.t.f.httpx.service 97% => 100%  50% => 50%

RB_ID=541474
finagle-core: Make MaskCancelFilter.Param public so it can be configured

Problem

MaskCancelFilter.Param is private to finagle and so can't be configured for servers

RB_ID=542728
[finagle-http/x] Fix flaky streaming tests

Problem

Some streaming tests are flaky because of a race between
discarding a Writable and writing to it. The test assumes
that discard happens before the write, causing the write to
expectedly fail. However, sometimes the write happens
before.

Solution

Write repeatedly so that even if we write early, subsequent
writes will come after the discard. This is likely because
subsequent writes wait for antecedent writes to complete.

Result

Passes on 1000 test runs.

RB_ID=541456
[trivial] Fix example client configuration in FAQ

Problem

We don't yet support HTTPS with the fetchUrl API, but the examples in
our documentation suggests we do.

Solution

Update the docs.

RB_ID=541476
finagle-mux: mock network in discard test

Problem

Our CI seems to have an issue with this particular test.
I couldn't see any issues other than environment specific
network issues.

Solution

Mock the network via AsyncQueues. This omits some of the modules
in between, but I think it still tests the behavior in question.

RB_ID=532115
finagle-core: remove Context.letEnv; add shadowing Context.let

Problem

Context.letEnv had the wrong semantics: the previous environment
should not be discarded (except intentionally through Context.letEnv).
This caused a bug where Client Ids were no longer propagated from
legacy clients.

Solution

Introduce Context.let, with proper shadowing semantics.

RB_ID=543118
Revert "finagle-core: remove Context.letEnv; add shadowing Context.let"

This reverts commit 4ed8aeeae69675ec6ac8ceb5803184a59745ff7d.

RB_ID=543664
TBR=true
finagle-core: Properly pass parameters through in serveAndAnnounce

Problem

serveAndAnnounce(name: String, addr: String, Service[Req, Rep]) tries to
serve on name and announce at addr, which is the opposite of what it
says it does.

Solution

Fix the order of parameters.

Result

Parameters are taken in the right order.

RB_ID=542566