Feature/chaining consumer

add IMSDataConsumer which implements a chain of consumers that are called sequentially. This allows to specify the exact order in which a data processing should be executed (e.g. Smoothing first, then PeakPicking and then writing to disk).