Added changes to Netty pipelines to support SSL/TLS. Fixes #1978

1) Netty server and client pipelines updated to conditionally load keystore/truststore if SSL is enabled in the config
2) Supports any available encryption protocol via 'ssl-protocol'
3) Supported encryption algorithms are specified via 'ssl-encryption-protocol' config key
Added changes to Netty pipelines to support SSL/TLS. Fixes #1978

1) Netty server and client pipelines updated to conditionally load keystore/truststore if SSL is enabled in the config
2) Supports any available encryption protocol via 'ssl-protocol'
3) Supported encryption algorithms are specified via 'ssl-encryption-protocol' config key

Conflicts:

	akka-remote/src/main/scala/akka/remote/netty/Client.scala
	akka-remote/src/main/scala/akka/remote/netty/Server.scala
	akka-remote/src/main/scala/akka/remote/netty/Settings.scala
Reverted changes to client and server files and moved the code to NettySSLSupport.scala
Updated configuration file to reflect new netty.ssl hierarchy.
Merge branch 'ticket_1978' of github.com:dev10/akka into ticket_1978

Conflicts:
	akka-remote/src/main/resources/reference.conf
	akka-remote/src/main/scala/akka/remote/netty/Client.scala
	akka-remote/src/main/scala/akka/remote/netty/Server.scala
	akka-remote/src/main/scala/akka/remote/netty/Settings.scala
Updated to support 3 different random number generators:

1) SecureRandom supported by Java (default)
2) SHA1PRNG (causes problems on Linux)
3) Various versions of the AES Counter RNG (faster than default at generating random data)
Used RemoteCommunicationSpec as a template to implement a functional spec to test SSL communication.

1) Converted provider and related RNG's from Java to Scala
2) Added trust/key stores for testing purposes
3) As stated in the test comments, Internet access is required for the 2 'Secure' RNG variants to function within the time limit.
4) Fixed unnecessary imports
Merge pull request #476 from dev10/ticket_1978

Added changes to Netty pipelines to support SSL/TLS. Fixes #1978
Correction of gossip merge when joining, see #2204

The problem:
* Node that is Up joins a cluster and becomes Joining in that cluster
* The joining node receives gossip, which results in conflict,
  merge results in Up
* It became Up in the new cluster without passing the ordinary leader
  action to move it to Up

The solution:
* Change priority order of Up and Joining so that Joining is used when
  merging
Use max of periodic-tasks-initial-delay and the interval
Fail fast in cluster tests if prevous step failed
Test state transitions and actions step-by-step, see #2223
Real SunnyWeather
Minor reformatting
Fixing so that the SSL tests are ignored if the respective cipher isn't available on the machine the test runs on, so you'll see a yellow warning that the test wasn't run in that case
Second stab at making sure we don't run the tests for SSL remoting for the RNGs that aren't installed on the box the tests run on
Parrying for NoSuchAlgorithmException
Minor cleanup based on feedback, see #2223
Merge pull request #545 from akka/wip-2223-step-by-step-patriknw

Test state transitions and actions step-by-step, see #2223
Removing the use of 256bit encryption by default since it requires an install to get
Merge branch 'master' of github.com:akka/akka