Respect peer's connection-level flow control

Previously connection-level flow control is not respected at all.
Only stream-level one is used.  Also there are 3 bugs with regard to
flow control.  First one is that flow window is not drained when
allowed quota is greater than or equal to the number of bytes to
write.  Second one is that 0 length DATA frame cannot be sent when
allowed quota == 0.  Third one is that if DATA frmae is processed in
"fast path", flow control is not ignored.  This commit adds
connection-flow control enforcement and fixes these bugs.