on_stream_close when receiving FIN data frame

When receiving a data frame with FLAG_FIN, and
we already have closed the stream in our end,
call the on_stream_close callback.
Add spdy_stream_get_priority
Implement flow control

Initial window size is picked up from settings
passed to spdy_ctx_new, or when settings are
sent/received.

SPDY2 has no flow control, and so these API
changes can be ignored for SPDY2.

** Receiving Data **

In response to on_stream_data, the callee now
needs to eventually release the buffer space
by calling

  spdy_stream_data_consumed(stream, num_bytes)

This will send a WINDOW_UPDATE so the other
end knows he can send more.

** Sending Data **

The new API function

  int spdy_stream_get_output_window(stream)

provides thacaller info on how much DATA we can
send without overflowing the receiver.  The
call back

  void (*on_window_update)(ctx, stream, new_size)

informs the callee that the window size has changed
so he can send data again.
Validate incoming data amount against input_window

With this change, we keep track of the incoming
data window, and issue an error if the peer
sends too much.

With this change, if the session is SPDY3, then
the callee of on_stream_data must eventually
use spdy_stream_data_consumed to release input
buffer space.
Let spdy_stream_data_consumed return potential err
Merge upstream