Optknock: A bilevel programming framework for identifying gene knockout strategies for microbial strain optimization | Synapse