Refactored framework

Removed the Outcome datatype from MonteCarlo in favor of a simple
pair (e,p) for the intermediate values of the streaming process.

Converted the events in the MiniApp to outcomes paired with a
distance.  Moved contractors and other distance-specific parts of the
Monte-Carlo module into MiniApp, since they aren't part of general
streaming operations.