Refactor oracle interface, now cleaner, simpler, and more powerful

Benefits of this new design
* No need for oracles to track their constraints if they don't want to
* Can handle/order generating the cuts for their associated constraints in any fashion they so desire
* Same for reformulations
* Oracle doesn't need to care if its a MIP or an LP - just make a new constraint

Other tidying up to hopefully make #38 work, closes #10, and closes #31 for now