Add ilA_file and refactor materials

ilA_file is a separate file handle which can be used to later open an ilA_map with. It contains a native file handle which can be used. The split between file and opened map is nice for materials, as it means the material can be recompiled using updated contents.

Materials have been refactored to be stored within the rendermanager (for inspection outside of the renderer itself) and to use an ilA_file to represent the shaders, so they can be easily reloaded. It should suffice to simply call ilG_material_link() on any material to reload it. If the link fails it will leave the material as it was.