Add the resolver base class and the shell for the cooperative resolver concrete implementation.

The cooperative resolver is cooperative because multiple resolvers will all cooperate in the resolving process until one finds the answer requested.