Refactored some method args so that they matched the commandline args.  Added mpi support.
More Debugging statements for MPI
Avoid pickling in MPI
Refactored eval_windows method signature.

Keep track of window arguments until slave responds OK, otherwise got race condition where memory was overwritten and slave got garbage arguments.

Instead of polling every second for the slave, call MPI.Request.waitany() which will return as long as one slave finishes.

Placed outter try-catch that aborts MPI whenever there are unhandled exceptions.
Merge branch 'fix_spurious_mpi_fail'
Removed unnecessary imports
Do not throw exception if sam has no alignments
Fix weighted ave dn/ds to actually use weights.  Fixed bug where hyphy doesn't execute if tree already exists.  Fix bug where get_total_seq_from_fasta() always returns 0.