server side TLS support

This patch extends the very minimal TLS support in the master branch of Play with the following:
 - start https:// from the console (in dev mode)
 - settable properties from config file
 - patches the default server certificate to work for localhost (where it is most likely to be used)
 - fixes efficiency issue in TLS setup (it used to setup the whole connection on each tls request)

[see also ticket 215: TLS-HTTPS support in Play 2.0](https://play.lighthouseapp.com/projects/82401-play-20/tickets/215-tls-https-support-in-play-20) (I am not sure where one votes for pull requests. Here or at the tls ticket.)

## TLS in server mode

It is useful to be able to run TLS in dev mode. This patch allows this to be done from the shell with 

> run -Dhttps.port=8443

The FakeKeyStore's certificate has been changed to one whose CN (Common Name) is localhost.
This is because browsers and other clients tend to look at the CN to see if they have reached the right  server. It would be nice of course if one of the well known CA's signed an open localhost server, which could
then be used here usefully for test suites. (but that would be probably quite a lot of work to get them to do this)

Still CN=localhost is one less problem for clients. Apache's http client needs to be set up to ignore those errors in addition to ignoring certificates that might not be signed by well known CAs.

To see the certificate used by the server you can connect with your browser and click in the URL bar on the connection for such information, or you can use the following command line 

> openssl s_client -showcerts -connect localhost:443

## configurability

With the latest patch one can now specify any keystore in the `conf/application.conf` file with the following properties

```
https.port=8443
https.port8443.keystore { 
                          location : "conf/KEYSTORE.jks"
                          type : JKS
                          alias : selfsigned
                          password : secret
                          algorithm : SunX509
                          trust : noCA }
```

where `alias` is the alias of the server certificate placed in the keystore `KEYSTORE.jks` . Such a keystore can be built with java's `keygen` tool - for a hypothetical swiss company `coolapps.ch` - as follows

```
$ keytool -genkey -alias selfsigned -keyalg RSA -dname "CN=coolapps.ch, OU=software, L=Zurich, ST=Switzerland, C=CH" -storepass secret -validity 2000 -keystore KEYSTORE.jks
```

By following the procedures listed by your favorite Certificate Autority, you can also place a certificate in the keystore that is signed by that CA and have the server use that. (Note that [startssl.org](https://www.startssl.com/) provides free signed certificates.) This will allow your users to connect to your server on `https://` without an ugly warning box appearing. Hopefully greater support of [IETF Dane](http://tools.ietf.org/wg/dane/) by browsers will make it possible to use self signed certificates too.

### See Also 

Client side certificate support builds on this patch but was placed in a separate branch: [pull request 340](https://github.com/playframework/Play20/pull/340)