Refectoring: made state a get-able and set-able property of the filter
Changed: filter will be able to step even if measurement is missing.

It will do this by skipping the update step and only performing the prediction.
Added: TwoWayLKFilter reverse function and refactored code to use it.
Added: get_layers inside LayeredDetector as a generator object.
Fixed bug in filter: undefined attributes raise AttributeError not NameError.
Added the fitter module.
Added fitting test.
Added: filter keeps track of the amount of iterations and optionally of
measurements.
Fitter now forces filters to keep track of measurements.
Fixed: LayeredDetector keeps track of amount of hits it has.

And runtimeerror if somehow the wrong detector attempts to be incremeneted.
Style fix in detector printing
Fixed: filter saves first measurement. Need to fix later.
Fixed: clear_hits AFTER adding all new filters, not during.
Fitting changes, minor.
Added: Detector can now propagate multiple tracks.
Changed: test modules make use of propagate_tracks

Makes it slightly easier to propagate multiple tracks.
Added: x_step property to LayeredDetector.

And change in get_layers docstring.
Fixed: 2WLKF finally has a constructor.

This enables clean-up in reverse function.
Changed: 2WLKF variable detect now has the full name.
Indentation fixes