JobType Rework

This pull request is a rework of the base `JobType` class and associated modules.  The changes here are based on a thread on [discuss@pyfarm.net](https://groups.google.com/a/pyfarm.net/d/msg/discuss/er2e44kiPBE/JwVnOn43U-4J).
It's probably a bad idea after all if map_path() communictaes with the master. We cannot do this asynchronously, as the returned results are expected synchronously, but doing it synchronously might hang and does not fit in with the rest of the agent's architecture.

I think what we should instead is load the entire path map into memory when the agent starts, then have the master activey push map updates to all agents whenever they happen.