Random cleanup of attribute code

Did this during trying to understand the code
Changed Sword to Vit bonus since it has a lot derived attributes

Only done for easier debugging
Moved attribute (re)calculation to the scripts

This introduces two callbacks:
 - on_update_derived_attribute   -> Called to recalculate other derived
                                    attributes.
 - on_recalculate_base_attribute -> Called to recalculate a base attribute
                                    (only called for characters. However the
                                    function passed as callback can be useful
                                    for recalculating the derived attributes
                                    as well)

Monsters no longer block recalculation of attributes except HP and Speed.
I saw no sense to keep this.

Fixed constant value in libmana-constants.lua

Dropped bool type of the recalculation functions. It would be difficult to
keep it while pushing all to the script engine and it was unused anyway.

All in all this adds a LOT more flexibillity to projects since they can now
adapt all attributes in the way they want.