Double-diffusive mixing-length theory, semiconvection and massive star evolution