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.
Do you mean have one map for everything like: `std::map< endfid, mt_base_struct* >` where pointers make sense or one map per struct type: `std::map<endfid, mt_xxx_struct>` where the map should be of the object to simplify memory management.