code: protected static <T> IKey<T> newKey(final String key, final T defaultValue) {
          return new Key<T>(key, defaultValue);
      }
docs: creates a new key.
  
  @param key          string representation of this key
  @param defaultValue The default value