Actor.canSee fix
Set can_see_cache to weak table
Previously, if the "can_see_cache" property is not initialized when Actor.canSee() is called, it will be set to a strong table. This seems bad because this table can hold references to other actors and possibly prevent garbage collection. Actor.resetCanSeeCache() sets "can_see_cache" to a weak table, so I think the same should be done for initializing the property in Actor.canSee().
Now, Actor.canSee() will initialize "can_see_cache" with a weak table if it doesn't already exist.
I stumbled across this while investigating the Warden's Call memory leak and found references to the clones in game.player.can_see_cache. Unfortunately, this change doesn't seem to fix that problem.