Print out more friendly error if listFiles() fails

listFiles() could return null if the I/O fails, and this currently results in an ugly NPE which is hard to diagnose.
Style fix: put body of if within curly braces
Document fortran dependency for MLBase
Fixing SPARK-602: PythonPartitioner

Currently PythonPartitioner determines partition ID by hashing a byte-array
representation of PySpark's key. This PR lets PythonPartitioner use the
actual partition ID, which is required e.g. for sorting via PySpark.