NodeRegistry.updateNode replaces signer with owner and emits inconsistent events
When the `owner` calls `updateNode()` function providing a new `url` for the node, the `signer` of the `url` is replaced by `msg.sender` which in this case is the `owner` of the node. Note that new URL can resolve to the same URL as before (See https://github.com/ConsenSys/slockit-in3-audit-2019-09/issues/36).\\n```\\nif (newURl != keccak256(bytes(node.url))) {\\n\\n    // deleting the old entry\\n    delete urlIndex[keccak256(bytes(node.url))];\\n\\n    // make sure the new url is not already in use\\n    require(!urlIndex[newURl].used, "url is already in use");\\n\\n    UrlInformation memory ui;\\n    ui.used = true;\\n    ui.signer = msg.sender;\\n    urlIndex[newURl] = ui;\\n    node.url = \\_url;\\n}\\n```\\n\\nFurthermore, the method emits a `LogNodeRegistered` event when the node structure is updated. However, the event will always emit `msg.sender` as the signer even though that might not be true. For example, if the `url` does not change, the signer can still be another account that was previously registered with `registerNodeFor` and is not necessarily the `owner`.\\n```\\nemit LogNodeRegistered(\\n    node.url,\\n    \\_props,\\n    msg.sender,\\n    node.deposit\\n);\\n```\\n\\n```\\nevent LogNodeRegistered(string url, uint props, address signer, uint deposit);\\n```\\n
The `updateNode()` function gets the `signer` as an input used to reference the node structure and this `signer` should be set for the `UrlInformation`.\\n```\\nfunction updateNode(\\n        address \\_signer,\\n        string calldata \\_url,\\n        uint64 \\_props,\\n        uint64 \\_timeout,\\n        uint64 \\_weight\\n    )\\n```\\n\\nThe method should actually only allow to change node properties when `owner==signer` otherwise `updateNode` is bypassing the strict requirements enforced with `registerNodeFor` where e.g. the `url` needs to be signed by the signer in order to register it.\\nThe emitted event should always emit `node.signer` instead of `msg.signer` which can be wrong.\\nThe method should emit its own distinct event `LogNodeUpdated` for audit purposes and to be able to distinguish new node registrations from node structure updates. This might also require software changes to client/node implementations to listen for node updates.
```\\nif (newURl != keccak256(bytes(node.url))) {\\n\\n    // deleting the old entry\\n    delete urlIndex[keccak256(bytes(node.url))];\\n\\n    // make sure the new url is not already in use\\n    require(!urlIndex[newURl].used, "url is already in use");\\n\\n    UrlInformation memory ui;\\n    ui.used = true;\\n    ui.signer = msg.sender;\\n    urlIndex[newURl] = ui;\\n    node.url = \\_url;\\n}\\n```\\n