Unify action phases into one class

- Check what can be called in particular phase at runtime
- fixes #80 
- allows better action inheritance