firewire-lib: Fix a bug to flush pointer even if context is not running

Currently isochronous context can be stopped even if PCM is running.
Then amdtp_stream_pcm_pointer() can refer to error pointer by calling
fw_iso_context_flush_completions().

This commit fix this bug.
bebob: Fix a bug to handle packet discontinuity and bus reset

Normal BeBoB firmware has a quirk. When receiving bus reset, it transmit
packets with discontinuous value in dbc field.

This causes two situation, one is to abort streaming by firewire-lib as a
result of detecting the discontinuity. Another is to call driver's .update().
These two is generated separately. (The former depends on OHCI driver and the
latter depends on IEEE1394 bus driver.)

When this driver works with XRUN-recoverable applications, this situation
looks like stream_update_duplex() call following to stream_start_duplex() call
(because applications will call snd_pcm_prepare() immediately).

We shouldn't break connections in stream_update_duplex() or
stream_start_duplex() at bus reset because of this quirk. When breaking
connections, stream_start_duplex() re-establish them, streams immediately
have packets with discontinuity, then firewire-lib generates XRUN,
applications call snd_pcm_prepare() and stream_start_duplex() is called
again, breaking connections, re-establishing connections...(loop)

This commit modifies some codes to avoid this situation.
1.Adding a flag, CIP_SKIP_INIT_DBC_CHECK, into amdtp.c
When this flag is set, handling AMDTP packets can start during transmitting
packets.

2.loosen checking connection in cmp.c
Maintainer prefer to make most member private in 'struct cmp_connection',
however BeBoB driver have a situation whether connections are actually
established or not. When connected, establish function just returns.

3.Serializing stream_update_duplex() and stream_start_duplex()
At bus reset, these two functions would be called by different subsystem.
Both of them handle connections and streams.

4.Breaking connections only in stream_stop_duplex()
To avoid detection of discontinuity / re-establishment of connections loop

Abort streaming is also in queueing error. This is caused in a relationship
between OHCI driver. So in this case we don't need to touch connections.
bebob/firewire-lib: Add a quirk of wrong dbc in empty packet

M-Audio Firewire 1814 has a quirk, ProjectMix I/O also has. They transmit
empty packet with wrong value of dbc incremented by 8 at high sampling rate.
According to IEC 61883-1, this value should be the same as the one in
previous packet.

This commit adds a flag named as CIP_EMPTY_HAS_WRONG_DBC. This flag is
effective without CIP_DBC_IS_END_EVENT.

This is an example of this quirk:
CIP Header 0	CIP Header 1	Payload size
010D0000	9004F759	210
010D0010	90040B59	210
010D0020	90042359	210
01020028	9004FFFF	2  <-
010D0030	90043759	210
010D0040	90044B59	210
010D0050	90046359	210
01020058	9004FFFF	2  <-
010D0060	90047759	210
010D0070	90048B59	210
010D0080	9004A359	210
01020088	9004FFFF	2  <-
010D0090	9004B759	210
010D00A0	9004CB59	210
010D00B0	9004E359	210
010200B8	9004FFFF	2  <-
010D00C0	9004F759	210
010D00D0	90040B59	210
010D00E0	90042359	210