Proteus: A Hierarchical Portfolio of Solvers and Transformations