A New General-Purpose Algorithm for Mixed-Integer Bilevel Linear Programs