Fixed Lua error reporting for NPC scripts

This was due to a naming conflict between the 'debug' function I had recently
introduced and the 'debug' library provided by Lua. This caused problems when
trying to use debug.traceback for printing a backtrace of the error.

There's multiple ways to avoid the naming conflict. I opted for writing the
related helper functions in all-caps.

Also added an ERROR log function now. As Erik pointed out, there is no conflict
anymore with Lua's 'error' function with the new naming style.

Reviewed-by: Erik Schilling
Enhanced special support

- Made the current charge being saved.
- Added script binds:
  - chr_set_special_recharge_speed
  - chr_get_special_recharge_speed
  - chr_set_special_mana
  - chr_get_special_mana
  - get_special_info
- Added special info lua class. Functions:
  - name
  - needed_mana
  - rechargeable
  - on_use
  - on_recharged
  - category

Further the engine no longer sets charge to 0 after using of specials
this allows more flexbilillity (like failing specials).

Changes on the xml database:
- recharge renamed to rechargeable (needed by client and server)
- needed - the needed mana to trigger a special (server only)
- rechargespeed - the defailt recharge speed in mana per tick (server only)
- target - the type of target (either being or point) (server and client)

I also made the lua engine pushing nil instead of a 0 light userdata when
the pointer was 0.

Database update needed.

Change is tested.

Mana-Mantis: #167, #156

Reviewed-by: bjorn.
CodeBlocks gameserver projectfile updated

Added scriptmanager.h, scriptmanager.cpp, specialmanager.h, specialmanager.cpp

Reviewed-by: Ablu.
Renamed Thing to Entity

In preparation for using an entity/component system for the entities
in the game world, this name will be more recognizable and easier to
talk about.

Reviewed-by: Yohann Ferreira
Added mysql update script for the special commit

Forgot to add this to git when doing the commit. Sorry.

Reviewed-by: bjorn.
Adding monster::on_damage callback

Reviewed-by: bjorn
Fixed Configuration::initialize() to return false when failing loading

Reviewed-by: Bertram.
Fixed issues with server behind router

Tested-by: jurkan.

Reviewed-by: Bertram.
Introduced a Timeout class for counting down without counting

The timeout remembers a reference point of time against which it can check
how much time is remaining.
Fixed compiler warning about non-virtual destructor

None of the subclasses actually define a destructor that does anything, but
this may change in the future. In any case it's good to get rid of the
warning.
Changed SpawnArea and TriggerArea to components of Entity

Well, first visible change is that everything just gets longer to read.
Changed Item to a component of Actor

Items also have positions, so the ItemComponent only makes sense as part of
an Actor. Later on it will probably be part of an entity that also has an
ActorComponent.

Since it was annoying to update all the places where items were created,
I've introduced a function for this.
Changed Effect to a component of Actor
Changed NPC to an NpcComponent added to a Being

Started prefixing the component types with "CT_" because I wanted to introduce
an 'Npc' namespace which would otherwise be conflicting. The component types
enum isn't used much in the code so it can look a bit ugly.