add settings acknowledgement

This is an incomplete patch, but I'd prefer more peoples' input before progressing with it.

The problems:

1.  It breaks spec -- if client-server communications are immediate and synchronous (as in the "HTTP2::Stream Server API push" specs) we can have a situation where one of them sends a SETTINGS[ACK] before it has a chance to send its own initial SETTINGS.

    This really should be fixed, but I'm afraid I'd over-engineer it.

2.  There's a remaining issue of settings synchronization -- we currently assume settings apply as soon as we send them, but maybe we should set up a local-settings queue so we only actually apply them on receiving the ACK.

As it is, the relevant specs pass and it shouldn't have any interop problems with compliant peers.

Contributes to #11