Add a non-blocking version of amqp_simple_wait_frame

Provide a version of the `amqp_simple_wait_frame()` function that accepts a timeout to effectively provide a non-blocking way to consume messages from the broker.

This addresses #112.

This depends on #118 as we need error codes to signal that the call timed out.

#109 should depend on this as it affects a lot of the same codepaths and handling of timeouts.