Use weak values for each scene’s table of active characters

We do not create any character within a scene.  More specifically, no
Scene object defines the scope and extent of any Character object,
which is true even though characters only appear in scenes from the
point-of-view of the player.

If there are no references to a Character object outside of the Scene
objects then that means we are actively destroying those references,
e.g. if we want to free up memory.  If no reference to a character
exists outside of scenes then it does not make sense for that
character to remain ‘active’ in any scene, because that situation only
occurs when we want to get rid of a character to begin with.  Using a
weak table for active characters ensures that Lua will automatically
garbage-collect those objects if the only remaining reference is the
one for that active character list.  That way we do not have to
manually clean-up those references later.