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.
added FLAG_VARIANT6 macro, for use with ragged flags
added wmllint rule for FLAG_VARIANT6
Changed all mainline occurrences of {FLAG_VARIANT ragged} to {FLAG_VARIANT6 ragged}
Changelog entry
fixup "make level reflect start of scenario"

we change set_attr to set_attr_dup as gfgtdf pointed out
purge "record_change_controller"

we can use "change_controller" now instead because of the new
network adapter from gfgtdf
fixup scenario transitions

when the host transitions to the next scenario, in some cases he will
send "[start]" before the other clients even have the new scenario cfg
this means that the controller tweaks he send will hit them while they
are in linger mode or something, and the next scenario won't work.

we fixup the download_next_level function on the server side so that
it updates the level config when sending it out to the transitioning
client.

this fixes up commit fb726e0610af42fa815cf340fa68c570b8bef0d3
and bug #21931
update changelog
Merge branch 'master' of https://github.com/wesnoth/wesnoth