Implement logic data muxer thread
Multiple changes in one commit due to complexity:
1) data::decode::Decoder: Make use of the DecodeChannel struct for
channel assigments
2) DecodeSignal: Store DecodeChannel list in vector, not map
3) DecodeSignal: Remove unused get_data()
4) Remove boost::optional usage
5) Use DecodeSignal::segment_ as the container for muxed
logic data
6) Implement the DecodeSignal::logic_mux_proc thread and its
helper method mux_logic_samples()
7) Update DecodeSignal::decode_proc() to interface with the
logic muxer thread
8) Remove no longer needed DecodeSignal::wait_for_data()