AlgResourcePool: remove usage of SmartIF for algorithms
Algorithms are already managed by the AlgorithmManager so we can hold
plain pointers to them. Also simplify algorithm creation by using
existing "createIf" functionality and remove some unnecessary
dynamic_cast.
Closes #154 (closed).