Move damage and absorb calculations to StatBlock

Fixes #472 

The planned StatBlock refactoring would not have fixed this issue by itself, so I decided to fix this before that gets done. When refactoring the StatBlock, the `*_add` variables I added here will probably become `effects.bonus[*]`.