Changed behavior of NetworkManger.getReplacement(RemoteNode) so that it
can no longer return the RemoteNode passed to it.

Fixed bug in NetworkManger.getReplacement(RemoteNode) where attempting
to replace the only node would raise an IllegalArgumentException.

Fixed NullPointerException when calling
NetworkManager.getReplacement(RemoteNode) on an unreachable node.