Adds PoolTrait

After rereading the issue maybe I was not clear, but I will be now: the trait implements all functions from the interface, meaning it can be used as a decorator with an appropriate class implementing the required interface.

Some of the tests checked directly the attribute of the class, those were rewritten. Other than that it uses the same tests as Pool does.

Should I add any documentation?

Solves #184