Refactor existing DataMerge functionality (closes #610)
Created by: gkirgizov
Collapse most of the code and branches into one direct 'merge' method with stages. Merge process is almost same for most data types, essentially just concatenating data along last dimension. Stages can be customized for each datatype, instead of branching to separate merge.
Substitute many manual routines with numpy counterparts. Move merge-related stuff from SupplementaryData into separate SupplementaryDataMerger.
Drop InputData.from_predictions in favor of DataMerge.merge that now directly returns InputData.