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)
Fixed wrong formatting in docs
Added MembershipChangeListenerRemovedMultiJvmSpec

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
Implemented/Fixed Cluster.remove() and state transition from LEAVING -> REMOVED.

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
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
Fix false convergence when singleton cluster, see #2222

* All members must be in seen table for convergence
* Added extra debug logging due to convergence issues
* Enabled test of convergence for node joining singleton
  cluster
Rename + operator of VectorClock and Versioned to :+

* + is kind of reserved for string concatination
#2156 - sbt plugin: project dependencies should be included automatically
Correct? implementation of merge and other actions, see #2077

* Merge unreachable using  highestPriorityOf
* Avoid merge result in node existing in both members and unreachable
* Fix joining only allowed when !alreadyMember && !isUnreachable (non Down)
* Fix filter bug of unreachable in downing and leaderActions
* Minor cleanups
Proposal to make it possible to fully discard the receive and replace it with become, unbecome then reverts to receive if no behavior left
Formatting
Minor cleanup, based on review comments, see #2077
Merge seen table by starting with empty seen after merge, see #2077
Caching emptyBehaviorStack and remove all other uses of Stack.empty
Removing a pointless import and the only Scala return statement in our codebase
#2217 - setting accessible = true before newInstance