Benchmarking Classification Models for Software Defect Prediction: A Proposed Framework and Novel Findings