Add Hover ability to Plot.Scatter.

Currently uses a modified "Closest Point" algorithm:
   - If the cursor is over any circles, returns the closest of those circles.
   - Otherwise, returns the closest circle within some upper bound.

Progress on #848.
I could write it as:
```Typescript
var closestSelection = d3.select(closestElement);
return {
  selection: closestElement ? closestSelection : null,
  data: closestElement ? null
};
```
Although this is twice as many checks (we can't just return `closesetSelection.data()` all the time because it would be `[undefined]` instead of `null`).