Qcap

This PR

* Addresses the greedy solver behavior Radio saw when he made a bid without any constraints. Previously, the greedy solver would report a node's capacity as infinite if there were no constraints. It now reports it as the node quantity less its currently matched quantity, which is consistent with behavior in the presence of constraints.
* Fixes a bug I found related to the greedy solver and multiple request constraints/capacities. Previously, the capacities would be minimally satisfied (i.e., they were treated as a collection of less-than constraints) -- this is the correct behavior for bids. Now they are maximally satisfied (treated as greater-than constraints).
* Moves exchange graph behavior only used by the greedy solver into the greedy solver's header and implementation files. 
* Automatically adds a quantity-based constraint for requests.