### Elasticsearch Version

8.2

### Installed Plugins

_No response_

### Java Version

_bundled_

### OS Version

Any

### Problem Description

The PluginInfo verification code in Elasticsearch ensures that plugins must match the Elasticsearch they are being installed into. However, if the plugin descriptor properties file contains an empty string, the Version.fromString call would simply return the latest Elasticsearch version.

The bug relates to the following code:

```
        final String esVersionString = propsMap.remove("elasticsearch.version");
        if (esVersionString == null) {
            throw new IllegalArgumentException("property [elasticsearch.version] is missing for plugin [" + name + "]");
        }
        final Version esVersion = Version.fromString(esVersionString);
```

Apart from checking esVersionString for null, we should also check for the String being empty, e.g `Strings.hasLength(esVersionString) == false`.

### Steps to Reproduce

- Take any Elasticsearch plugin from a version other than the current
 
- Manually edit the plugin-descriptor.properties file in the jar and set `elasticsearch.version=`

- Deploy the plugin in the latest version of Elasticsearch 

### Logs (if relevant)

_No response_
server/src/main/java/org/elasticsearch/plugins/PluginInfo.java
pluginName
            );
            throw new IllegalArgumentException(message);
        }
    }
    /**
     * The name of the plugin.
     *
     * @return the plugin name
     */
    public String getName() {
        return name;
    }
    /**
     * The description of the plugin.
     *
     * @return the plugin description
     */
    public String getDescription() {
        return description;
    }
    /**
     * The entry point to the plugin.
     *
     * @return the entry point to the plugin
     */
    public String getClassname() {
        return classname;
    }
    /**