[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
It is in the same group of other doctests for this private function. I didn't find one for `_verify_type` in `SQLTests`.