snd-firewire-lib: [fix stream] add buffer to keep previous packets for continuous sort

To solve the issue in previous commit, this commit add a buffer to keep
some previous packets and in next callback sort packets with them, leave
again some packets for next cycle. With this implementation, each callback
can queue all of packets.

The buffer is kept in amdtp_stream_start() because the maximum size of payload
has decided. According to this size, the buffer size is decided. Currently it's
max_payload_size * QUEUE_LENGTH / 4, actually for 12 packets. In each
receive_stream_callback, packets / 4 is stored to the buffer. In my machine,
it's 16 / 4 = 4 packets. In this theory, when 48 or more packets are given in
amdtp_stream_callback(), then buffer is overflowed. But actually I think it
impossible because 48 is the same as QUEUE_LENGTH and the callback will be
generated several times during 48 packets. Even if we change the number of
QUEUE_LENGTH, I thinks it safe.

This modify the other things related to this issue.
 - the timing to decide the data_block_quadlets and add it to structure member
 - add new macro "SWAP" for sort helper function
 - the place to increment packet_index and change queue helper function