Refactor Stream to ensure header blocks are decoded in the correct order:

Previously, incoming frames were placed on per-Stream queues, which were
read from lazily, i.e. whenever HTTP20Response.getheaders() or .read()
were called. However, the HPACK algorithm depends on header blocks being
encoded/decoded in the same order on both sides of the connection;
otherwise, the codec states on each peer will get out of sync.

This commit rearranges header decoding by moving it from
Stream.getresponse() to Stream.receive_frame(), which is executed on
the Connection's event loop. DATA frame receiving was refactored in a
similar way for consistency.
Revert a change that caused WINDOW_UPDATE frames to be sent on closed streams
Test receiving an unexpected frame on a stream
Merge pull request #39 from alekstorm/header-decoding-order

Refactor Stream to ensure header blocks are decoded in the correct order
Remove HTTP20Response object.
Update HISTORY for #39.
Formatting problems.
Implement server push, exposed as the HTTP20Push and HTTP20PushedResponse classes
Rename extract_from_key_value_set to pop_from_key_value_set, have it modify the set in-place
Temporarily revert addition of 'pushed' attribute from requests adapter Response object pending further discussion
Merge BaseHTTP20Response, HTTP20Response, and HTTP20PushedResponse for simplicity
Add more comments to critical paths in Stream
Rework the server push API to account for PUSH_PROMISEs that arrive after the original response headers
Add enable_push flag to HTTP20Connection constructor and cancel() method to HTTP20Push
Update/clarify push docs
Use HTTP20Connection._get_stream() in more places
Don't use single-item tuple deconstruction assignment for clarity
Revert remaining decorative changes to test_integration.py
Fix bug: util.get_from_key_value_set() shouldn't modify its arguments
More testing for stream canceling and Continuation handling