Split wml_menu_item and wmi_container into their own source files.

They are now under the game_events subdirectory.
Expand the game_events namespace.

This puts wml_menu_item and wmi_container in the namespace.
It's not really an improvement at this point, but I think it will
be better in the future.
Move fire_wml_menu_item_event into wml_menu_item.

This allows better encapsulation, as the play_controller no longer
needs to know details about the menu item, like the event's name.
Remove an unnecessary check.

wml_menu_item::can_show() already checks the last selected hex, so
no need for play_controller to worry about that check (which improves
data encapsulation -- now wml_menu_item::needs_select_ no longer needs
to be exposed to the general public).
Parameter consistency between can_show() and fire_event().

(These are members of wml_menu_item.)
I opted to get rid of a parameter and use a global. Using globals
is kind of yucky, but in this case, it's basically a choice between
using the global within the procedure or using the global as a
parameter to the procedure. I chose to go with the older function's
approach.
Remove an unneeded "if" statement.

When a serach for an item with a given id returns something, then
that something has the given id. There is no need to test that.
Also added some documentation as to what the search is for.
Convert 8-space indents to 4-space indents for consistency.
Clean up the messsages testing WMI hotkeys.
Use unsigned int for counting.

Trivial change, really just for appearances. If we ever have enough
WML menu items where this makes a difference, we're going to be
overloading something somewhere. Just not here. :)
Shift most of wmi_container::init_handlers() to the wmi class.

This leaves wmi_container as a wrapper that does not need to know
implementation details about wml_menu_item.