Abstract homotopy theory