Decouples option implementation with option training
Decouples option implementation and construction with option training
Add trajectory recorder, refactor pythonic max to numpy-style argmax