Reduce root-centricity of InputManager and AnalysisModule

Introduce intermediate layer of abstraction for InputManager for better decoupling
The root-specific TTreeInputManager is now a plugin in context-backend-root and not
directly used by any framework class (only indirectly via the plugin system).

AnalysisModule::begin_input_file now takes the filename as argument instead of
the TFile.
Introduce OutputManagerBackend, same as for InputManagerBackend
various changes to zsvanalysis

In particular:
 * W boson BR reweighting
 * splitting ttbar to ttbar+bbar
 * chcks using CSV b-tagger
 * CSV b-tagging SF reweighting
improve error messages in registry
Better respect options.maxevents_hint
Introduce OutputManagerOperations for file formats

introduce OutputManagerOperations to provide common abstract
interface for different file formats; implement it for root files

change dra/ra to use the OutputManagerOperations instead of hard-coding
filenames extensions, etc.

add config option default_treename

add weights setting in Hists, allowing to apply different weights
for each directory in the output
fix small build and config files issues