snd-firewire-lib: add data_block_cb_t to handle each data_block

Current snd-firewire-lib handle the data in each data block in its own
function. But this causes a restriction for packetization.

For example:
There are some drivers which can support 20bit sample.
Dice driver needs "dual wire" mode which means that double events in one
event of data block.
BeBoB driver needs channnel-remapping.
Digi003 driver needs its own way to make each data block.

This commit remove "amdtp_write_s16/amdtp_write_s32/amdtp_read_s16/
amdtp_read_s32" and "transfer_sample" member in "amdtp_stream" structure,
"amdtp_stream_set_pcm_format()". Instead of them, this commit adds
"data_block_cb" member in "amdtp_stream" structure and registers it in an
argument of "amdtp_stream_start()" function. Then add the function
which handles the data in data block into each driver source.
snd-firewire-lib: add "data_blocks_calc" member and amdtp_stream_set_data_blocks_calc()

The AMDTP stream from/to Digi003 is in non-blocking mode. But the number of
data blocks in a packet is completely different from current snd-firewire-lib
implementation.

This commit adds "data_blocks_calc" member to amdtp_stream structure for
driver's own calculator of data blocks. This works as a callback when
calculating data blocks. Each driver can set it with
amdtp_stream_set_data_blocks_calc(). The callback function should return
positive number.
snd-firewire-speakers: remove not-reused member from structure

Merge this patch.
[alsa-devel] [PATCH] firewire-speakers: remove not-reused member from structure
http://mailman.alsa-project.org/pipermail/alsa-devel/2013-July/063853.html
snd-firewire-lib: remove MIDI support

To re-design amdtp, MIDI support is going to be removed temporarily.
snd-firewire-lib: now amdtp just considers the number of channel in data block

To simply the implementation of amdtp and move some functions to each drivers,
this commit remove "pcm_channels" and "midi_ports" from amdtp structure,
amdtp_stream_set_pcm(), amdtp_stream_set_midi(). Then adds
amdtp_stream_set_data_block_quadlets().

Each driver should set the size of data blocks in advance of
amdtp_stream_start(). If not set, the function failed.