Use std::unique_ptr for Account instance of AccountClient

Makes cleanup automatic and ownership somewhat better recognizable.
[Abilities] Renamed specials to abilities
[Abilities] Renamed set to category

On the one hand setSetName and setName could sound misleading in the qt
client patch i plan. On the otherhand i never really liked the name
"set". I think category is more general and obvious.
[Abilities] Added network message for removed ability

This prevents really nasty code clientside
[Abilities] Turned special 1 into a point target for easier testing
[Abilities] Only send status for actually changed abilities

Previously *every* ability was spammed over the network regardless
whether it was changed or not.
[Abilities] Made the rechargespeed depending on attributes

This allows a lot more flexibility and makes stuff like magical items a
lot easier to implement. We will also use this for the attack system in
the future. So a attack (abilitiy) would simply depend on some value
like Agility (or a derived attribute from it). Which sets the recharge
speed.

The recharge speed is the modified value of the attribute per game tick.
[Abilities] Removed all except one ability

Should allow easier modification without thinking of useful examples for
each one
[Abilities] Moved the ability code into a own component

This later allows monsters and characters to use this component.
[Abilities] Added a autoconsume option

You do not need to reset the mana in the scripts if you do not want to.
We will need this for attacks later since those do not nessecary have a
script.
[Abilities] Added support for a global cooldown

Each ability can now define a cooldown that prevents the player from
using other abilities for a while. The time of this cooldown can be set
to any attribute. The modified value of the attribute is the value of
the cooldown in game ticks. The cooldown will be automatically started
if the ability has `autoconsume` set to true. Otherwise a script has to
call entity:cooldown_ability(ability).
[Abilities] Inform other players about ability uses
[Abilities] Added a useaction to the gamedata

Only required clientside.
[Abilities] Made a first example attack ability
[Abilities] Added a add_hit_taken bind

This allows to display hit messages in the client for abilities
[Abilities] Removed the old autoattack system

As a side effect i had to remove the monster attack AI for now. I will
readd this as next thing.
[Abilities] Added abilities to monsters

Monsters can now either receive abilities at lifetime via scripts, or
via the <ability> node in the monsters node.
Added get_monster_classes() bind

It returns all monster classes in a id->monsterclass table.
Added function to check for length of a possible path
Added entity:destination() bind