Fix CNWSpellArray__GetSpell return type.
Re-implement polymorphing.

* Add necessary function pointers.
* Add a few helper functions for creating / equipping / unequipping / destroying items.
* Add hooks for polymorph/unpolymorph
* Redo determining attack type, the default engine will not use creature attacks
  if any item is equipped in the lefthand.
Fix CNWSpellArray__GetSpell return type, add function address.
Merge branch 'ta_solstice_polymorph' into ta