Cleanup of constructors and destructors

Added default values of nullptr for lookup tables
Added freeing of lookup tables where appropriate
Added destructors for all classes needing them
Cleaned up constructor usage ( = delete syntax, etc.)
Delineated ownership policy with OWNED POINTERS comments
Formatted header files more nicely