Flush window updates as soon as possible

Summary:
setReceiveWindow needs to immediately generate a window update for the peer, except in cases where the headers have not yet been sent.

Test Plan: Loaded my sandbox via proxygen with upstream SPDY and 10MB receive window.  Unit tests

Reviewed By: dcsommer@fb.com

Subscribers: trunkagent, doug, bmatheny

FB internal diff: D1689350

Tasks: 5550573

Signature: t1:1689350:1416362990:494ca6abc7ee47b0914ec67bccf7b00925b8830a
Don't allow callers to shrink the recv window

Summary:
D1685122 had a bug caused by toAck_ being unsigned.  If a caller created the FlowControlFilter with a 1MB window (read_buf_limit), then called setFlowControl with a smaller value, it would emit a bogus window update close to uint32_t::max.  Make it signed, but also refuse to shrink the recv window, because it can lead to FLOW_CONTROL_ERRORs when a large data packet is in flight.

Facebook:
We may need to revisit this for liger.

Test Plan: Canary, looks good.

Reviewed By: dcsommer@fb.com

Subscribers: trunkagent, doug, bmatheny, fma

FB internal diff: D1691378

Signature: t1:1691378:1416427442:f3e5cc472c1680166d8abf6625cd9b9370a20d74
Bump version to 4:0