RFC WIP on python / PEG version of planout

Initial python planout compiler

Still todo:
- [ ] JSON literal (or hashmap / dict?)
- [ ] Unit-Tests
- [x] Switch
- [ ] Else
- [ ] Port to JS ?


This PR is mostly for comments rather than as something that is done to be merged.
This isn't valid for two reasons:
1. You can't have an operator by itself on one line -- it always needs to be used in combination with an assignment statement, or a logical statement.  This makes sense from the perspective that PlanOut operators (besides set, of course) shouldn't have any side effects, so allowing the user to do this would be silly. 
2. Strictly speaking, `uniformChoice(1,2,3)` should get compiled to `{"op": "uniformChoice", "values": [1,2,3]}`, which would throw a runtime error if it were executed.