Cyclopts

This is a PR of the current changes to Cyclus required for my present work (I wanted to get one in before it got too large). This PR is largely comprised of:

* updating the OSI header files from an errant sed 's/model/agent/g'
* fixed a bug in exchange graph translation that did not account for the exclusivity flag
* all solvers now return objective values
* the calculation of costs associated with unmet demand are now shared by all solvers through the ExchangeSolver API
* the prog solver now uses a cbc CLI-like solve (it's much faster)
* the greedy solver now copies any state of exchange graph that it mutates
This kind of variable should be `#define`d somewhere rather than being hard-coded in multiple locations. `CYCLUS_SOLVER_TIMEOUT` might be a reasonable name. Better still, it would be configurable by the user at runtime, though a `#define` would work for now.