Refactor: Added C++ material_t class

Note that the class was not named Material to try and minimize the
number of potential conflicts in branch 'revise-texture-animation'.
Cleanup: Removed redundant runtime_mapdata_header_t