xBRZ trial commit

This commit adds the xBRZ algorithm to the codebase, and hacks in
an imagepath modification to use it, and adds a bunch of extra
images showcasing it to the unit help pages.

xBRZ was obtained from sourceforge (xBRZ.zip):
http://sourceforge.net/projects/hqmame/files/

It is modified, the original program wants to be compiled as
C++11, so I had to make minor changes so that it can compile as
C++98 w/ boost.

Main changes: get boost/cstdint and typedef uint32_t from there,
comment out all static asserts
change all cases of lambda functions to boost bind instances or
otherwise.
Fix non-utf8 characters.
Suppress warnings from unused functions.
dos2unix on all new files
Renanme files .h -> .hpp, as config.h is in our .gitignore
Fixup warnings from negligible initialization of POD types
Mark some templates results with attribute unused
fixup xbrz blending handling of alpha channel

xbrz reference implementation assumes that there is no alpha in
the sprites, and indeed, when it would blend any colors would zero
out the alpha channel. This is not suitable for our needs, as our
sprites have alpha, and SDL treats 0 alpha as being transparent.

This commit adds --placeholder-- alpha channel code. It does not
do proper alpha compositing, it just checks if either the source
or blend pixel has < 50% alpha (if so it ignores and takes the
other), and otherwise it applies full alpha to the pixel. This
seems to work fine in the ``typical'' cases I have observed but
a ``real'' implementation is needed here.
add wesnoth default scaling results along-side xBRZ in help pages
Revert "Anchor unit overlays to the topleft corner of the sprite."

This reverts commit 8f49cbad5508d761c1139c65e064c31ea3c79a00.

This commit breaks the game when you zoom in, since I'm trying to
make changes to how that works it is inconvenient to have to deal
with it right now. This bug was assigned to lipk more than a month
ago when he first introduced it.

Conflicts:
	changelog
	src/unit_drawer.cpp
as a test, use xBRZ when zooming images

This also sets the max zoom to 288 so you can reach 3x and 4x if
desired.
add "advanced graphics" preference dialog, for scaling algo options

This commit also gives the smart enums in src/make_enum.hpp
introspective capabilities, by giving them a static const size_t
which tells how many possible values they may take (hence the range
of the enum.) It was convenient for the dialog implementation
to have this.

We also disable unit tests for the new advanced graphics dialog,
there are no tests for it right now...
implement advanced graphics options back-end

This commit makes the `image` namespace check the advanced options
when selecting how to scale a sprite. It also makes the advanced
graphics options window flush the caches when an option is changed.

This permits the user to experiment with different graphics
algorithms while playing the game.
fixup for other compilers