[SPARK-3573][MLLIB] Make MLlib's Vector compatible with SQL's SchemaRDD

Register MLlib's Vector as a SQL user-defined type (UDT) in both Scala and Python. With this PR, we can easily map a RDD[LabeledPoint] to a SchemaRDD, and then select columns or save to a Parquet file. Examples in Scala/Python are attached. The Scala code was copied from @jkbradley.

This PR contains the changes from #3068 . I will rebase after #3068 is merged.

@marmbrus @jkbradley
Does this also work for any arbitrary column name ? i.e if I am taking in the features column name as a command line argument, how would it look ?