MFH: A Multi-faceted Heuristic Algorithm Selection Approach for Software Verification