fixup 9e7dc5ba008298d823c13cff214f7477601b5efd

The scoped_ptr<unit> construct which was used previously in
actions/create.cpp is unnecessary after this commit, and it seems
like it could be related to this error report:

http://wesnoth.org:8080/job/Wesnoth/branch=master,compiler=default,label=Debian7-64/185/consoleText

The most significant change of this commit is that
unit_creator::add_unit now does not make a "temporary" unit
instance from the cfg, and then copy construct it. From source
inspection that step appears to be unnecessary, and it somewhat
obfuscates the meaning of this code in actions/create.cpp
Merge branch 'master' of git://github.com/wesnoth/wesnoth
add recall list manager

This commit adds a dedicated recall list manager class.

The purpose of this is to

- Simplify the code that interacts with the recall list. Prior to
the commit most such code was based on iteration with explicit
iterators, and called global helper functions implemented in
unit.cpp to wrap the code that finds a unit in a vector. It turns
out that interacting with the recall list was the *only* use of
that code, so we make it a member function of the recall list
manager and take it out of unit.cpp.

Most of the code that touches the recall list was previously
7 or 8 lines with a for loop, now it tends to be 1 or 2 lines,
although further refactor may be possible.

- Improve encapsulation. This makes it possible to track how
other classes are interacting with the recall list, and may
make it easier to debug recall list problems by adding debugging
output to the class.
Merge pull request #208 from cbeck88/add_recall_list_mgr

add recall list manager
Changed from 4 to 3 difficulty levels for balancing.

Revamping difficulty levels to aid in upcoming balancing for "expert" campaign.
remove declarations of fcns that we were moved

fixes up a4b194c0794d360dc6eff5c464c6634941dff5da
Altered difficulties=
set travis back to gcc 4.6 version

The gcc-4.8 patch requires travis to download and install gcc-4.8
from an ubuntu ppa. This takes a few mintues and the gcc build is
already fairly close to the timelimit, so this change can push
some builds over the edge. Since it doesn't seem to be strictly
necessary right now, I comment out the code for v 4.8 install.
Merge branch 'master' of git://github.com/wesnoth/wesnoth
Altered WML that allowed for 4 difficulty levels.
Altered WML that allowed for 4 difficulty levels.
Altered WML that allowed for 4 difficulty levels.
Altered WML that allowed for 4 difficulty levels.
use UnitPtr (intrusive_ptr) in unit_animations

In this commit the unit * in unit_animation is changed to a smart
pointer. This is to prevent the unit_map or some other object
from destroying the unit and creating a dangling pointer
(reported to cause segfaults).

In this commit, we also change the fake_unit class to make sure to
increment the refcounter when the fake_unit is constructed. The
reason is that the fake_unit holder is supposed to own that unit
and let it expire when it goes out of scope. No smart pointer is
supposed to delete it.

This mechanism should possibly be revisited, for example the
fake units could also be held in a reference counted pointer.
With the current system it is still possible that the fake_unit
will go out of scope and be destoryed while the animation is still
alive, this change only prevents smart pointers from destroying it
before it goes out of scope.

I also comment out the reentry_preventer class uses in
unit_animation.cpp, to prevent assertions from happening when I
test for example with the "double debug kill" version of the bug.
The reentry_preventer seems to be unnecessary now.

This addresses bug #18921 and maybe others.
Altered WML that allowed for 4 difficulty levels.
Altered WML that allowed for 4 difficulty levels.
Altered WML that allowed for 4 difficulty levels.
Altered WML that allowed for 4 difficulty levels.
Altered WML that allowed for 4 difficulty levels.
Altered WML that allowed for 4 difficulty levels.