Add publish port

    Add transport.publish_port setting to allow users to specify the port
    other cluster members should use when connecting to an instance. This
    is needed for systems such as OpenShift, where cluster communication
    needs to use a publicly accessibly proxy port, because the normal port
    (9300) is bound to a private loopback IP address.

    This commit is a backport from https://github.com/elasticsearch/elasticsearch/pull/4359