Refactor triggering NPC interactions

Closes #1306

When placing NPCs on the map, we now create a 1x1 event at the NPC's
feet. This means that selecting NPCs with the mouse or the keyboard
behaves the same as other events.

It's worth noting that the event we create is of the "on_trigger" type
and will repeat indefinitely. This means we can't let the player stand
on the same tile as the NPC, or else they won't be able to escape NPC
interaction. I've added a check for collision on NPC tiles. A warning
will be printed and the tile will be blocked if there is no collision
tile where an NPC is located.
Merge pull request #1307 from dorkster/fixes

Refactor triggering NPC interactions
Fix incorrect animations when spawning as a transformed creature

Closes #1310

In addition, untransforming on an invalid tile (possible with the Bat in
Polymorphable) will warp the player back to where they initially
transformed. If the transformed on a different map, they'll be
teleported to the spawn position on that map.
Don't process logic during what is actually a loading frame

Fixes #1308
Merge pull request #1312 from dorkster/loading_fix

Don't process logic during what is actually a loading frame
Merge pull request #1311 from dorkster/fixes

Fix incorrect animations when spawning as a transformed creature
Print a log message when unable to untransform
Merge pull request #1313 from dorkster/fixes

Print a log message when unable to untransform