refactor ServeCommand calls

Signed-off-by: Simon Leung <leungs@us.ibm.com>
Plugin pings cf when it is ready to accept commands.

- removes sleep from cf.

[#79964866]

Signed-off-by: Simon Leung <leungs@us.ibm.com>
Refactor install plugin to use counterfeiter fake.

[#79964866]

Signed-off-by: Tyler Schultz <tschultz@pivotallabs.com>
Refacto plugin/rpc to setup bidirectional communication

[#79964866]

Signed-off-by: Simon Leung <leungs@us.ibm.com>
Implemented plugins advertising their own name.

- Name space with plugin name instead of binary name.
- Expose plugins directory as part of plugin configuration object
- Cli and plugins ping each other for availability. If the ping fails,
  they will stop the servers after 1 second.

[Finishes #79964866]

Signed-off-by: Dan Lavine <dlavine@us.ibm.com>