Adds a specialization of MOI.delete that deletes a batch of constraints. #313
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.

I have only did it for MOI.ScalarAffineFunction constraints. This is merely a performance improvement. JuMP and MathOptInterface already have batch constraint deletion fallbacks and they will correctly call this method when it is the case. I did not add new tests nor benchmarks, but did call
JuMP.deletein my code (that had performance problems), checked if the method was really called (with aprintlnalready removed), and the performance difference was from 23.2 seconds to 0.531 seconds (~29k constraints deleted from ~36k constraints, the speedup was probably higher than the ~43x because I am timing two batch variable deletions in these measurements, instead of just the constraint deletion, and they did not change performance with the changes introduced by this commit).I executed the Gurobi tests as usual:

@odow can you give it a look? If you want me to stop pinging you in these cases just tell me, I am never sure if I should or not. If you think it needs extra tests or a "minimal working benchmark" I can work on them asap.