Added "list_jobs" function to mdrunr, and refactoring.

Mdrunr class now keeps a dictionary of { job : status }, as well as the
queue, to maintain a history of what happens to each job. This history
can be polled using the q.list_jobs() method, where q is a Mdrunr
instance.

I also did some refactoring of Mdrunr, and extended the docstring.j