SPARK-673: Capture and re-throw Python exceptions

This patch alters the Python <-> executor protocol to pass on
exception data when they occur in user Python code.
Some style cleanup
Small fix from last commit
Merge pull request #434 from pwendell/python-exceptions

SPARK-673: Capture and re-throw Python exceptions