SendGraphChanges: batch node metadata changes

Node metadata includes positions on the graph. The UI emits changes on
these for each event receive on the canvas, resulting as many changes
in the logs of the SendGraphChanges component.

Given that each metadata object contains all the information we need,
we can batch these.