#3159 - ReliableProxy with reconnection

ReliableProxy with reconnection.  Fixes #3159

  * When the proxy receives `Terminated` for the tunnel it goes into a `Reconnecting` state which uses `Identify`/`ActorIdentity` to obtain a new `ActorRef`.
  * Adds option to use `ActorPath` instead of `ActorRef` for *target* in constructor.  If `ActorPath` used it the `ReliableProxy` will resolve it to an `ActorRef` before proxying messages to the target.
  * Adds new constructor parameters `reconnectAfter` and `maxReconnectAttempts` (see Scaladoc).
  * Adds new messages `ProxyTerminated`, `Unsent`, `TargetChanged` (See Scaladoc).
  * Additional unit tests for new behavior.