plugins/resman: Add cache for NCS file data.

The engine doesn't free these in normal circumstances, which was causing
memory leaks if an NCS file wasn't in one of the NWN resource manager's
key tables.  The file info hash table was expanded to hold a pointer to NCS
file data.

In order to keep the cache in sync with the plugin and event observers, it required expanding
ResManDemandResStruct to communicate resource type and last modification time to
DemandResource event observers so they can determine whether they need to
return new data or if the plugin can return cached data.
plugins/resman: Add ResourceExists event.

Required to query event observers as to whether they have file or not.