Making changes to account for the fact that sshKeys may be defined both at instance and project level

The code does a hanging get at the top level attribute and when that changes, does a hanging get on the instance level sshKeys attribute, and if needed followed by a get for project level attribute.

Since metadata attributes don't change often, this code simply does a hanging get at the top level
attribute collection as a way to detect changes to sshKeys. This avoids the complicated logic that would
be required to make two hanging gets. In addition, if sshKeys have been defined on Instance level, then
this code will still do a long poll on that as a result of changes to the top level.