Greedy with prefs

This is an addendum to cyclus/cyclus#641 that was the result of the discussion with @scopatz.

Previously, the GreedySolver simply matched every request greedily without a notion of preferences. Now, ExchangeNodes have a notion of preferences and the GreedySolver will first sort the Arcs based on those preferences before matching.