A framework for parsing endf files in c++

This is an admittedly very rough idea on flexibly parsing endf files in c++ (but it does work). Before this gets merged the only thing someone who wants to extend it should need to write is the `read_xxx` function where `xxx` is the mt number and write the struct derived from `mt_base_struct` (and maybe edit the xdressrc if I go that direction). The decision trees and cython layer will all be autogenerated.
This is basically the grey area where jump tables will be used with `switch` but might still be slower than predictive branches with the `if else` on newer cpu's since most of them will use just a few of the branches and typically only the first few branches will be used for most data.