Bilevel Programming, Interdiction, and Branching for Binary Integer Programs