Added ability to run non-mpi jobs.

Specifying the "mpi_mode" flag in the "Mdjob" instantiation allows
running a command that does not start with "mpiexec".

Jobs are assumed to be "mpi" jobs by default, for
backwards-compatibility reasons.
Added gitignore.
Allow different jobs to require different number of CPUs.

The number of CPUs a job requires is now specified in the job
definition. The queue will only run jobs in the order they are given,
but will try to run jobs as soon as it it has enough free processing
power.

A new thread is now spawned by the queue every time a new job is
started. It might be worth investigating whether this causes memory
leakage.
Added example usage.
Changed indentation and added logger.

According to PEP8, "Use 4 spaces per indentation level".

Added logger so that output messages are printed to file rather than to
the console (to prepare running this as a background server).
Now runs on a client-server model.

The queuing program is now split into two parts:

 - mdrunr.py sets up a queuing server that can holds the queue,
   launching jobs when it can.
 - mdclient.py is a client program that lets the user connect to the
   server and add jobs.
Added basic usage information.
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
More usage information.
Merge pull request #1 from pbugnion/serv

codez