Code cleanup to allow for several cluster systems

Use a base class 'Pool' for everything related to job queuing, object
server, etc.
Use subclasses for each cluster system, for example HTCondor (job
submission).