[SPARK-3658][SQL]Take thrift server as a daemon

https://issues.apache.org/jira/browse/SPARK-3658

And keep the `CLASS_NOT_FOUND_EXIT_STATUS` and exit message in `SparkSubmit.scala`.
We need to call `gatherSparkSubmitOpts "$@"` before this line to generate `SUBMISSION_OPTS` and `APPLICATION_OPTS`. I don't think we should source `spark-daemon.sh` in `start-thriftserver.sh` because

1. `gatherSparkSubmitOpts` is tightly coupled with `spark-submit`. In fact we should always call `gatherSparkSubmitOpts` before calling `spark-submit`. Put them together is more preferable.
2. When adding another daemon component that uses `spark-submit` in the future, we don't want to duplicate the `gatherSparkSubmitOpts` call in the new start script.