Full refractory and addition of error environment
Complete refactoring of optimization and error studies:
- complete separation of responsibilities among components
- model separated from optimization and correction
- dataclasses to handle return info
- optimization routine completely re-written to achieve nominal (~6 um) beam size with non-zero trajectory and element offsets
- added tests for most critical parts of the code-base