19238 - discovery timeout in clients

While reworking the discovery system to be pluggable we inadvertantly
lost the ability for a rpc client to override the discovery timeout.

This is complex because there are many factors contributing to the
timeout in order of precedence:

  - someone specifically setting the timeout in a script
  - the command line and initial options given to the client
  - the ddl file of the discovery method

We should retain the specific intent even when changing discovery
methods mid script so this reworking ensures that happen while restoring
the ability for clients to set it specifically