[SPARK-4192][SQL] Python UDT

Following #2919, this PR adds Python UDT (for internal use only) with tests under "pyspark.tests". Before `SQLContext.applySchema`, we check whether we need to convert user-type instances into SQL recognizable data. In the current implementation, a Python UDT must be paired with a Scala UDT for serialization on the JVM side. A following PR will add VectorUDT in MLlib for both Scala and Python.

@marmbrus @jkbradley @davies
`_create_converter` doesn't do this. It is used to drop the names if user provides Row objects, called by `_drop_schema`. I think we need to refactor the code a little bit during QA.