initial version of parameter overrides
unify override logic

- Unified override logic so that the Interpreter uses the Assignment()
objects overrides
- Interpreter now uses an Assignment object (params) instead of a
dictionary. Assignment objects can be passed into the Interpreter’s
constructor.
- The set operator in the PlanOut interpreter is now more lazy, such
that the righthand side won’t be executed if the lefthand side is
overridden. This makes it easy to implement mocks for experiments. This
is how Facebook’s implementation of PlanOut works.
- Added unit test for overrides for the Assignment object.
fully tested overrides

-Overrides are fully operational for Assignment, Interpreter, and
Experiment
-Overrides have unit tests for all 3 classes and function as expected.
cleaned up old override logic

tidied up some old override logic
Merge pull request #22 from facebook/overrides

Add generic support for parameter overrides