Use SparkConf object to configure SparkContext

The new Spark SparkConf object replaces the old configuration system that uses
Java system properties and environment variables. SparkConf is thread-safe and
self-contained. For now, SparkConf is constructed to honor the old system and
environment properties. With time, we should change this behavior.

One effect of this move to SparkConf is to prevent errors around binding a port
for the SparkContext in each test case.

This commit also fixes a race condition in GenotypePredicatesSuites.