[SPARK-3500] [SQL] use JavaSchemaRDD as SchemaRDD._jschema_rdd

Currently, SchemaRDD._jschema_rdd is SchemaRDD, the Scala API (coalesce(), repartition()) can not been called in Python easily, there is no way to specify the implicit parameter `ord`. The _jrdd is an JavaRDD, so _jschema_rdd should also be JavaSchemaRDD.

In this patch, change _schema_rdd to JavaSchemaRDD, also added an assert for it. If some methods are missing from JavaSchemaRDD, then it's called by _schema_rdd.baseSchemaRDD().xxx().

BTW, Do we need JavaSQLContext?

 
Yeah, a separate issue makes sense (I actually [suggested that](https://issues.apache.org/jira/browse/SPARK-3500?focusedCommentId=14131933&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14131933) in the JIRA ticket). But to clarify, the ticket was originally about `coalesce()` not working, then `repartition()` and `distinct(n)` were added on.

`distinct()` with no parameters was always working. There was no question about that.