Unified key/joystick bindings & mouse emulation

These two features ended up going together. The MAIN1 key needs to behave
differently based on its context (combat vs menus). Mouse emulation gives a
way to handle both of these contexts. Basically, mouse emulation is turned
on when in menus and off when in combat. All of this combined means that
Flare is now be played entirely with a joystick.

In addition, GameState* menu keyboard shortcuts have been removed. There
were conflicts with mouse emulation and these shortcuts. Not to mention
the amount of menu navigation with these keys was limited (couldn't operate
the Configuration menu) and made the code messy. By having only the mouse
cursor (emulated or otherwise) operate on widgets, we keep things
consistent.

Finally, a bug in GameStateConfig where joysticks could be enabled without
picking a joystick from the list was fixed.

Known issues:
* The mouse can still be used when in mouse emulation mode. However, the
cursor is hidden and placed in the bottom-right to prevent it from
interfering with combat. I didn't want to lock the mouse in that corner
because it's not good for people that play in windowed mode. This is the
best compromise for this that I could come up with.
Don't hide cursor when mouse emulation is off
Fix elemental resists/weaknesses for enemies

By having a vulnerable_base stat, the vulnerable_* values given in enemy
definition files won't be overwritten when effect bonuses are applied.
Fix transform bugs

* Fixes creature powers being saved to the save file.
* Fixes temporary transformations being saved as if they were permanent.
* Fixes a crash caused by trying to copy Effects between the player and the
transformed creature. This involved adding an overloaded '=' operator to
EffectManager and executing clearEffects() when transforming. This means that
hero effects aren't saved for when they untransform.
* Fixes item bonuses to base stats (Phys/Ment/Off/Def) not being applied when
untransforming.
Fix crash when exiting while transformed

This makes sure we run decrease the animation count based on the hero's
currently transformed state when decontructing the Avatar class.

Also, the ability to manually untransform is now saved to the player's
save file.
Implement proper overloading of EffectManager's assignment operator

This fixes some compiler warnings. It also allows us to preserve the
hero's effects while they are transformed and reapply them when they
untransform.
Merge pull request #345 from dorkster/joystick

Unified key/joystick bindings & mouse emulation
Merge pull request #346 from dorkster/bugfixes

Fix elemental resists/weaknesses for enemies
Merge pull request #348 from dorkster/transform

Fix transform bugs
Allow defining default names for portraits

The name is the last value of an `option` key in `engine/hero_options.txt`.
Example: `option=male,head_short,male01,The Hero`

This means that the `default_name` variable in `engine/misc.txt` is now
obsolete.
Merge pull request #352 from dorkster/joystick

Allow defining default names for portraits