FBstab: A Stabilized Semismooth Quadratic Programming Algorithm with Applications in Model Predictive Control