multichannel files: safer handling

- previous code would not have worked with non-MSEED multichannel files
  (due to special "sourcename" channel selection during MSEED reading) in
  combination with "apply_filter" (all traces from read file get mapped to
  db request result channel; file gets read multiple times and all every
  time all read in traces get mapped to one single channelcode)
- also much simpler and easier to understand and not spread out across the code