SPARK-3883 SSL support for HttpServer and Akka

 - Introduced SSLOptions object
 - SSLOptions is created by SecurityManager
 - SSLOptions configures Akka and Jetty to use SSL
 - SSLOptions uses property file which is node-local to set SSL settings
 - Provided utility methods to determine the proper Akka protocol for Akka requests and to configure SSL socket factory for URL connections
 - Added tests cases for AkkaUtils, FileServer, SSLOptions and SecurityManager
@vanzin I understand what you mean. I just thought that you didn't understand me :)

To be more precise, there is one more type of communication:
Spark Master talking to Spark Worker, this needs to be set up independently from any launcher

For this one, you need SSL configured on all the nodes prior to running any application. My understanding of SSL is that it is not intended to authenticate particular clients (applications) but rather authenticating hosts. In this regard, a single SSL configuration per host is enough. At the end, we want to encrypt the data which are exchanged and a single SSL configuration per host does the job. 

We can introduce further improvements later, though.