firewire-lib: Add some AV/C general commands

This commit add three commands. I think many devices use these commands.
These commands are defined in 'AV/C Digital Interface Command Set General
Specification Version 4.2 (2004006, 1394TA)'.

1. INPUT PLUG SIGNAL FORMAT command
2. OUTPUT PLUG SIGNAL FORMAT command
3. PLUG INFO command

By the command 1 and 2, the drivers can get/set sampling frequency.
By the command 3, the drivers can get the number of each plugs.
firewire-lib: Add quirk for BeBoB chipset

This commit adds a modification for BeBoB quirk.

According to IEC 61883-6, there is two processing when AMDTP packets include no
data in blocking mode.

processing 1. Size of packet is two quadlets.
The value of combination of FDF and SYT fields is 0xffffff.

processing 2. Size of packet follows the blocking rule.
The value of FDF is usual.
The value of SYT is 0xffff. This value is 'no info'. This means the packet
includes no timing information.
The packet includes dummy data.

In previous implementation, this module apply prosessing 1. But BeBoB can't
handle packets generated by processing 1.

In this reason, this commit apply processing 2.

Here let's considering side effect. I assume all of devices can ignore the data
in packet by processing 1 and 2 because both packets include 'no info' SYT.
firewire-lib: Add quirks for Fireworks chipset

This commit adds two modifications for Fireworks quirks.

1. The driver can indicate the number of first data blocks in which this module
put MIDI messages for out stream.
This commit add 'blocks_for_midi' member to 'amdtp_stream' structure for this
purpose. Fireworks can pick up MIDI messages in first 8 data blocks and ignore
in other data blocks. I confirm this in the firmware version between 4.8 to
5.8.

2. This module calculate data block size by itself don't check counter.
One of Fireworks device, AudioFirePre8, always reports 8 data block size in
transmitted packets and the data block counter is incremented by 8. But this is
wrong. This commit force this module to calculate data block size and not to
check counter continuity.