Made cooldowns of abilities scriptable

 - Removed hardcoded using of attributes
 - Simply introduced lua functions to set global and ability cooldowns
 - Requires database update
 - Bumps the protocol
Use '/' as seperator for ability categories rather than '_'

I find this a lot more readable.
Only call ability recharge callback if it is valid
Removed ability categories
Allow abilities name for use_ability()
Fixed warning which used an invalid iterator
Unshared the serialization of characters

This getting annoying while trying to do multiple changes.
Types/structures had to be shared all the time making it nessecary to
find ugly workarounds.
Allowed to push attributeinfos for the attribute recalculation

While on it I replaced the id usage in the server with the usage of the
AttributeInfo directly.

Next steps:
 - Dehardcode the core attribute ids and store their
   attributeinfos somewhere in AttributeManager (for now i simply
   wrapped the ids with getAttributeInfo().
 - Move AttributeInfo out of AttributeManager to shorten the usage + to
   allow using a pointer in ModifierLocation without forward declaring
   it.