cloudmonkey: add param completer heuristic
cloudmonkey: add param completer heuristic

- Adds a list API heuristic to autocomplete for arguments that are some kind of
  id, for example in deploy virtualmachine command, for an argument like
  templateid, this heuristic tries to find an API that lists templates and
  returns options that may qualify for this argument

- Adds a relative search approximation heuristic. This uses cache apis returned
  from CloudStack mgmt server, in which the API discovery plugin creates a map
  of related APIs for each API's argument/options. We search this information
  of related APIs for an API arg that we're trying to autocomplete but only after
  the list API heuristic has failed

- Since, heuristic based approximations are used, parameter autocompletion may
  not be foolproof. So debug logs are added so users can report issues and corner
  cases that may be fixed.

Signed-off-by: Rohit Yadav <902b9eb5dd62819678163bd5e00fbf0cbc7c264b@shapeblue.com>

Interoute/cloudmonkey-interoute,remibergsma/cloudstack-cloudmonkey,remibergsma/cloudstack-cloudmonkey,apache/cloudstack-cloudmonkey,apache/cloudstack-cloudmonkey,Interoute/cloudmonkey-interoute