Give files better names

In particular:

 - api.js only has connect, and it's only a 'low-level' connect, so
 rename that to erm, connect.js.

 - ChannelModel gets its own file, and the API using it is promoted to
 the top directory, so it can be referred to as in
 `require('amqplib/channel_api')`; it remains the default module too.
Move Frames methods into Connection

There wasn't enough to distinguish `Frames` from `Connection`. This
way, `frame.js` keeps all the parsing and serialisation details (e.g.,
frame layout), and connection combines that with a stream and
connection-level operations (open, close, channels).
Buffer writes per channel

This accomplishes two things:

 1. Each channel can now participate in `Stream`'s flow control
 protocol, since each has its own buffer with a high-water mark

 2. I can fair queue among the channels if I want to do that later
 (presently it relies on `#pipe`, which I don't believe to be anything
 like fair)
Hook up 'drain' in the right place

And remove some daft arithmetic (daft as in wrong and daft as in
misleading even when corrected).
Don't close the downstream socket if our write buffer is ended
Let the channel write HWM be specified