Update Summon Mount to use proper dialog.

In T-Engine, registering a dialog returns immediately; it doesn't wait for the
dialog to finish.

A symptom of this is that Summon Mount starts the targeting interface
immediately, in the background of the mount selection dialog, instead of
waiting for the user to select a mount.

The standard way of handling this is by using coroutines. I still don't quite
get coroutines, so I took the talentDialog function from T-Engine 1.2.4 and
patched it back into this release and updated Summon Mount to use this.
Add some auto-size logic to GetChoice.

GetChoice's item list now auto-sizes so it's not always full-screen with a
scrollbar.
Update Wild Shape to use talentDialog.

This fixes bugs such as an enemy getting a turn before the shape is selected or
the Wild Shape sustain starting even if you cancel a selection.

Update GetChoice to pass additional data to its callback. This lets a single
table (as in the table of wild shape options) contain all necessary data,
instead of duplicating code.
Update Prayer to use registerDialog.

Prior to this change, if you used Prayer while next to an enemy, the enemy got
a turn before you made your selection. I think I lost a character this way.

Use no_npc_use instead of writing code to check for self == game.player. AI
routines have to check no_npc_use, but the default routines do, and I find an
extra table attribute to be much cleaner than a bunch of if statements.
Update Mount to use talentDialog.

Fix failing to check for user canceling targeting.
Update Alter Self and Polymorph to use talentDialog.

Fix a couple of bugs where self.setEffect was called instead of self:setEffect.

From looking briefly at the alter self and polymorph temporary effects, I
think they still have problems with their handling of temporary values, but
I'm not going to worry about that right now.
Merge pull request #144 from joshkel/talent-dialogs

Talent dialogs