[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). 
as far as I can see `MSDataChainingConsumer` is not a template class so why is it defined in the header and why do you add this default instance?