Tweak timeout behavior; switch to encode_to_array

Note: this depends on my amq-protocol pull request: https://github.com/ruby-amqp/amq-protocol/pull/27