SConstruct: Do not link with libintl - Wesnoth now uses boost::locale

http://forums.wesnoth.org/viewtopic.php?f=10&p=577648

This fixes compilation error on MinGW:
...
g++ -o wesnothd.exe -mwindows -mthreads build\release\sd... -lboost_locale-mgw49-mt-1_57 -lwsock32 -lintl -lz
../lib/gcc/i686-w64-mingw32/4.9.2/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lintl
collect2.exe: error: ld returned 1 exit status
scons: *** [wesnothd.exe] Error 1
scons: building terminated because of errors.
SConstruct: Link with iconv on Windows to fix GetACP error on MinGW:

i686-w64-mingw32/lib/../lib/libiconv.a(localcharset.o):localcharset.c:(.text+0x7): undefined reference to `_imp__GetACP@0'

https://stackoverflow.com/questions/16558813/link-error-with-getacp-under-mingw64-mingw-builds
cmake: Fix pot-update target breakage when bash isn't the default shell

(Default shell as in the /bin/sh executable.)

On Debian and other systems using a different Bourne-compatible shell
that doesn't support some of Bash's syntax extensions (in particular,
'&>' as a redirection operator targeting stdout+stderr), the pot-update
target is completely broken, stuffing the POTFILES.in lists for either
the last (wesnoth-utbs) or first (wesnoth-ai) textdomains with paths for
every C/C++ source file from our tree.

Shells that do not interpret &> the way Bash does consider it to be the
stdout redirection operator following an asynchronous invocation. Of
course such a thing is bound to cause weird issues like this.
Restored a subtler Shaun and Ed easter egg
DiD: combine some variable clearing
gui2/tgame_cache_options: Set busy mouse cursor during cleaning/purging

These are potentially expensive operations depending on the target
medium, the number of files that must be deleted, and the filesystem
implementation. For example, deleting 12,100 files (around 235 MiB)
takes around 0.4 seconds here.

Using the busy mouse cursor makes it look less like Wesnoth has frozen
entirely and more like there's actual work being done.
add a unit test for recall list manager object
Put split-string-at-comma code into a function
Eliminate local var from trim()
Allowed a comma separated id list for [remove_event] and [event] remove=yes
add some debugging output to recall dialog when dismissing units
partially fix 23076 (don't hold std::vector<unit> in recall dialog)

After this commit 9e7dc5ba008298d823c13cff214f7477601b5efd which
introduced reference counted unit pointers, the recall dialog
began to fail assertions. The problem was that it was making
private copies of all units, and when units get deleted this list
got out of sync. I'm not totally sure exactly what mechanism was
making it work before, but this commit which shares the units list
between the different gui elements prevents the assertion failure.

Note that there is still a bug, in that the unit preview pane at
left still gets out of sync somehow...
fully fix bug #23076

This commit keeps the various UI elements of the recall, unit list
dialogs in sync by passing a smart pointer to the underlying set
of units between them. This seems to fix all of the problems
mentioned in 23076, preventing assertion failures and mismatches
between the unit list and the preview pane.
Merge branch 'test_recall_list'
travis: refactor script, try to fix utf8 check program
travis: ignore error code 200 from test executable if repeats 10x
travis: remove "time" utility, travis has a new feature for this
travis: also check changelogs & RN for utf8 errors
lua: fix some warnings from implicit int->bool (lua_toboolean)
try to fix clang c++11 compilation