Prevent stack verflow when scanning large buffers containing multiple frames
Prevent stack verflow when scanning large buffers containing multiple frames

RabbitMQ 3.6.x seems to prefer batching together multiple frames in a
single TCP packet. Prior to this commit, the frame parser would call
itself repeatedly till it empties its buffer causing a stack overflow
when it got to process a very large packet.

This commit switches to an iterative scanner which solves the problem
and actually makes frame parsing a bit faster.

rajmaniar/dart_amqp,achilleasa/dart_amqp,rajmaniar/dart_amqp