Add `release.zsh` script.

Add a script, `release.zsh`, which is a convenience wrapper around
`wesnoth_addon_manager`.
Add `utils/idem()`.

Add `utils/idem()`, a function which takes any quantity of arguments and
returns them all untouched.
Add the start of a basic test suite.
Add test script for `string` library.
Amend erroneous check for Lua version ≥5.2.

`utils/load()` was checking whether it was running under Lua 5.2 or
later by checking whether the global variable `loadstring` was falsy.

I had evidently written this check under the impression that the
`loadstring` function was removed in Lua version 5.2, when it was in
actuality merely deprecated in that version.

This commit resolves the issue by checking for `setfenv` instead, that
function having indeed been removed in Lua version 5.2.

Incidentally, this was the first bug discovered by the new test suite.
Fix `string/eval`’s customizable error handling.

`string/eval`’s customizable error handling facility was implemented
such that, if `string/eval` was given a custom error handler function,
it would, if it failed to evaluate the given string, not only call the
custom error handler function, but also attempt to call its return
value, whatever that might be.

I assume that when I implemented this I assumed that all custom error
handler functions would call `error`, and thus not return.

This commit resolves the issue by restructuring `string/eval` such that
it will not attempt to call a custom error handler function’s return
value.

This restructuring makes the implementation of `string/eval` clearer,
but at the cost of also making it much more verbose. I suppose I’m okay
with that now, though (just look at this commit message).

This is the second bug discovered by the new test suite.
Allow `string/eval` to use a custom error message.

Extend `string/eval`’s custom error handling facility to allow for the
caller to provide a custom error message string, rather than a custom
error handler function.
Have `utils/load` return compile error messages.

Have `utils/load` return error messages on compilation errors as do the
underlying `load`/`loadstring` functions.

This functionality already implicitly existed in Lua 5.2, but not in Lua
5.1, and it was not included in the public or private interface; this
commit enables this functionality under Lua 5.1, and documents it as
part of the public interface.
Have `string/eval` report compile error messages.

Have `string/eval` report the compilation error message if the given
string fails to compile, by passing the compilation error message to a
custom error handler function or including it in a default error
message.