fix whitespace
add command line option --unit, -u, to run scenario as a unit test

This is the initial commit for --unit, -u, unit test option.
This option is a modified version of --test, -t. Scenarios will
run in the same context essentially, but will terminate on
scenario end.

The exit code of wesnoth is 0 (PASS) if the scenario ended with
LEVEL_RESULT VICTORY, or LEVEL_RESULT NONE.

The exit code of wesnoth is 1 (FAIL) otherwise.

Higher exit codes may reflect a failure for a reason other than
the scenario ending in defate.
make unit tests run headlessly

specifying --unit is similar to --nogui. that is, this check is
essentially ||'d in at all places where --nogui would be checked
add WML macros for unit test scenarios

contains "generic_unit_test", "return" and "assert" macros
add WML unit test examples, and include the test directory

add some trivial tests, and the _main.cfg files to ensure they are included
add wml unit tests two and three

- test two tests a basic property of events
- test three tests unit placement on the map in
  case of a collision
add wml_unit_tests test aggregator script

This bash script runs a sequence of WML unit test scenarios.
If all pass the result is 0.
If any fails, the result is 1, and the std::cerr stored in "error.log".
We also add error.log to the .gitignore list.

It shows how --timeout and --validcache may be used in such a script
unit test timeouts: first attempt

use an SDL_Alarm to try to abort the process if it goes over time.
correct thread model for unit test timeouts

it seems that child threads can't terminate the whole process,
so we need to instead use a worker thread and make the
main thread the timer / return thread.
add --timeout to wml_unit_tests script

use the timeout feature as appropriate for automatic testing
add replay validation to unit tests

after unit tests play, then unless --noreplaycheck flag is used,
they save a replay at the end of the scenario (using autosave
code path), without compression. then they try to load it and
play it to completion.
this is the initial attempt.
removed invalid comment.

when i wrote that code, i forgot that the user can press continue in the assertion error dialog.
Update VC project for 847067dac7
Reapply a5cb1492c4 on 1_Tutorial.cfg

The tutorial produced a row of warnings because the WML container
next_turn and its members weren't initialized.
Merge pull request #149 from aquileia/clean_up

Minor fixes to the VC project & the tutorial
Fix aspect ratio in resolution setting dialog
Fix bug #21915: Resolution selection dialog

The resolution selection dialog didn't set the selected resolution but a
lower one.

Instead of using the index from a filtered list on the unfiltered list,
the function is directly passed the filtered one.
Merge pull request #151 from aquileia/clean_up

Fix resolution selection dialog
Healer Support Micro AI: code cleanup
Protect Unit Micro AI: fix bug in goal selection

There was a typo in the goal table indexing.  It worked for the
multi-unit test scenario (the Elves Besieged) because the goal x
coordinates for both units were the same.