Bda hybrid solver
Similar to the regular hybrid solver, the Bda hybrid solver allows calling multiple solvers in sequence.
Since the regular and bda hybrid solvers share almost identical implementations, I've added a HybridBase class which implements the common functionality.
This MR is dependent on the additions in !441 (merged).