fix(Combat): running from fixed encounter does not defeat it

- Add GameWorld.reportEncounterResult to allow the invoker of a fixed/random encounter via the world get a callback when the encounter is complete.
- Report encounter result to world from combat exit states.
- Make GameFeatureComponent inherit its .id field from it's host feature object.  The host feature object id will be the unique (hyphen-cased-id) from our data set.