title: Require on address(this).transfer(msg.value) throws error
body: <p>need help understanding why <code>require</code> is throwing an error and stopping my contract from compiling. The function is meant to allow the proxy owner to upgrade the current version of the proxy contract and call the new implementation to initialize whatever is needed through a low-level call.</p>
  
  <pre><code>function upgradeToAndCall(address implementation, bytes memory data) public payable
      onlyProxyOwner
      {
        upgradeTo(implementation);
        require(address(this).transfer(msg.value)(data),'');
    }
  </code></pre>
  
  <p>Two errors I am getting</p>
  
  <pre><code>No matching declaration found after argument-dependent lookup.
  
  Type is not callable
  </code></pre>
  
  <p>Any help with this will be greatly appreciated.</p>