code: public Object getKey(Key key, String[] actualReturn) {
          return getKey(key, actualReturn, null);
      }
docs: <p>Given a key, return a service object, and, if actualReturn
  is not null, the descriptor with which it was found in the
  first element of actualReturn.  If no service object matches
  this key, return null, and leave actualReturn unchanged.</p>
  
  <p>This queries the cache using the key's descriptor, and if no
  object in the cache matches it, tries the key on each
  registered factory, in order.  If none generates a service
  object for the key, repeats the process with each fallback of
  the key, until either one returns a service object, or the key
  has no fallback.</p>
  
  <p>If key is null, just returns null.</p>