Initial version of 2d ray tracer.
Optimize bin recorders

* use np.digitize
* add helper module to abstract away some simple helper functions
Improve recorder names
Update element names and update test.
Rename RayBundle as Source
update