Ignore build folder for ReleaseDEBUG MSVC builds.
fix an MSVC warning
fix the MSVC project file
cb project update
Fix an unreachable code issue.
Refactor commit_wmi_commands() in preparation for future changes.

Just splitting the changes into smaller pieces so it will be easier
to track down any problems that might come up.
Introduce a variable for readability (and fewer dereferences).
wml_menu_item refactoring: make command private.
Create wml_menu_item::can_show() from part of play_controller.cpp.
Create wml_menu_item::update() from part of action_wml.cpp.
Create wml_menu_item::to_config from part of wmi_container::to_config.
wml_menu_item refactoring: make filter_location and show_if private.

Also change them from configs to vconfigs so they don't need to be
converted each time the item is filtered.
Some tweaks to vconfig construction and documentation.

The only real change is to empty_vconfig(), which no longer requires
the overhead of the vconfig making a copy of the empty config.
Allow vconfig to convert to boolean, similar to the way config does.

This allows vconfigs to be a bit more similar to configs.
In particular, it allows the slightly more efficient methid of testing
the result of vconfig::child() instead of chacking has_child(), then
calling child().
wml_menu_item refactoring: make needs_select private.
wml_menu_item refactoring: make description private.
wml_menu_item refactoring: make image private.

This also moves some logic from play_controller.cpp to wml_menu_item.
wml_menu_item refactoring: make event_id private.

Also rename the field to "item_id_", since it is populated from
the item's ID, not the item's command's ID.
Furhtermore, there was a place where the ID's assignment could be
simplified.
wml_menu_item refactoring: make name private.
Move the intialization of wml_menu_item::event_name_ to its constructor.

One benefit is that now event_name can be declared const, letting
programmers know that its value does not change.