Merge ActionPool into Core
ActionPool is a (complicated) singleton, however we want the action's lifetime to match the core
By folding it into the core we can simplify the code
ActionPool is a (complicated) singleton, however we want the action's lifetime to match the core
By folding it into the core we can simplify the code