Fix bug #23024 by repositioning {SOUND:SLOW}
UtBS S10: 'tallest peak was build' -> '[...] built'
Ignore projectfiles/CodeBlocks/cb/

This is the default dir name for the extracted CB SDK zip we provide, and the projectfiles folder
is a logical place to put it
Dropped -fopenmp flags

For some reason CodeBlocks automatically changed all forward slashes to back slashes
This shouldn't mess anything up
Revert "Dropped -fopenmp flags"

This reverts commit f755b77fbd7fa38c63df8306459b1b9b589c0c98.
bugfix: swallow exceptions in save_blocker dtor

See code comments for more discussion.
Merge branch 'master' of https://github.com/wesnoth/wesnoth
simplfy use of config_of

when using config_of with config_of child we now don't need to
explicitly cast the child to config.
fix bug #23027 (wesnoth dofile)

The bug is fixed by making lua_fileops::load_file consume its
stack argument. That function is also changed so that it takes
its argument from the top of the stack instead of the bottom, which
is a bit more normal.
fixup wesnoth.require after commit HEAD^

It was implicitly assuming that loadfile takes arguments from the
bottom of the stack.
add a wml unit test for lua dofile
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"