Substantial work on ManagedBranch and BranchManager

* Extended ManagedBranch
  * Made several methods chainable
  * Added methods for addition to BranchManagers
* Added AbstractBranchManager, InputBranchManager, OutputBranchManager
* Branches can now be optional on input
* Branch output can now be controlled via output-level
* Deprecated methods BranchManager::inputFrom and outputTo