## 🚀 Feature Proposal

I suggest
1. either to add method `getId()` to interface `WebElement`, or
2. to create interface like `HasId` or `HasIdentity` and make `RemoteWebElement` implement it. 

## Motivation

People often cast `WebElement` to `RemoteWebElement` just to call method `getId()`. 
De-facto all implementations of `WebElement` have method `getId()`. 
For me, it's a problem because `RemoteWebElement` is a class, not interface, and therefore I cannot create a proxy object for it in Selenide. I need some interface with method `getId()`. 

}
    if (!(other instanceof RemoteWebElement)) {
      return false;
    }
    RemoteWebElement otherRemoteWebElement = (RemoteWebElement) other;
    return id.equals(otherRemoteWebElement.id);
  }
  /**
   * @return This element's hash code, which is a hash of its internal opaque ID.
   */
  @Override
  public int hashCode() {
    return id.hashCode();
  }
  /*
   * (non-Javadoc)
   *
   * @see org.openqa.selenium.internal.WrapsDriver#getWrappedDriver()
   */
  @Override
  public WebDriver getWrappedDriver() {
    return parent;
  }
  @Override
  public boolean isDisplayed() {
    Object value = execute(DriverCommand.IS_ELEMENT_DISPLAYED(id))
      .getValue();
    try {
      
      if (value == null) {