DRY'ed up all the mcollective routing logic and added a new class for agent field retrieval