Big Animals MAI: bug fix for units sometimes not attacking
Lurkers MAI: bug fix for attack error when lurker runs into ambush

If the lurker move is interrupted by an ambush, the attack action
previously sometimes caused an error, because the lurker might not get
to its target.
Fixed Morogor's location being described all wrong.
SotBE S6: reduce randomness of unit types unloading from galleons

This is done to keep the difficulty of the scenario more consistent. We
now always unload one level 2 unit and two level 1 units (assuming that
at least 3 landing hexes are available).
add wesnoth.show_lua_console, as a debugging aide

This allows some sort of "drop into debug" mode for lua if your
script detects an error.

We could consider to actually add an "option to attach debugger"
as an error handling mechanism, but it might be complicated
because of wesnoth exceptions which must go through lua and be
treated as lua errors, and we cannot handle two exceptions at once
obviously, so the lua interpreter is probably not safe to run that
way in general. Anyways this commit does not do that.
add a header required by CB/MinGw
CB build system update

description see commit
4a616341b2dff52f1ad179d86f1801e07ede1db7
on 1.12 branch
Merge branch 'add_lua_interpreter_launch_command'
Add an active orb icon for the Display -> Colors options page

Made it myself by tweaking the existing orb.
use fast function pointers for scaling algorithm selection

The first implementation used boost function pointers but these
are much slower for many reasons. This commit refactors the system
to use traditional C-style function pointers, which is all that is
actually needed.
Merge branch 'master' of https://github.com/wesnoth/wesnoth
add plugins context, manager, create lua thread object

This collection of classes provides a framework whereby the engine
may provide scripting capabilities in any "context". A C++
function may declare a plugin context by providing a list of names
function objects, then may call "play_slice()" on this context to
transfer control to lua. A lua script may generate some arguments
and request to call some of these, then yield to the engine. C++
will run them until one of them signals an error, or that the
context is now invalid (using a boolean return value).

The intended semantics is that lua may only make requests
corresponding to the current context. As soon as a new context
is used (play_slice() is called again) the old context is invalid
from lua's point of view -- calling those functions is a lua
error but not undefined behavior. This should be the case even if
the old context has not been destroyed yet in C++, for instance
if a lua request resulted in a new context being created. There is
a system of locks in place to ensure that when old contexts are
invalidated, stale requests are discarded.

We also add the coroutine library to our lua base. This because
threads are run as coroutines, and writing them requires the use
of coroutine yield from the standard library.
add accessor functions to plugins contexts

This allows scripts to request more info from the engine.
add plugins bindings to titlescreen and mp lobby
move the "get_str" shim to the plugins/context header
add --plugin option at command line (to replace script eventually)

This is still rough and will need to be cleaned up later.
add "describe_plugins()" to the application lua kernel
allow to open the app lua kernel in the multiplayer lobby
fixup error reporting when loading a thread's script

Should use T_ not mState...
add some debugging output to plugins manager on channel "plugins"