Edge quadtree integration, edge events, edge hovering

Let's interact with edges! They are no second-class citizen anymore. This code works with all edge types provided by default in sigma.js.

### How it works
Edges are indexed in a quad tree. Indexing and querying this quad tree is deactivated when the ForceAtlas2 is running, on node drag, and on animation. The quad tree is updated at the end of these actions.

### New events
`overEdge`, `outEdge`, `clickEdge`, `overEdges`, `outEdges`, `clickEdges`

### New settings
- `enableEdgeHovering`
- `edgeHoverColor`
- `edgeHoverSizeRatio`
- `defaultEdgeHoverColor`
- `edgeHoverHighlightNodes`

### Features
Hovered edges can be drawn on the canvas hover context (enableEdgeHovering) with the ability to change their color (edgeHoverColor, defaultEdgeHoverColor) and size (edgeHoverSizeRatio). The node extremities of hovered edges can be hovered at the same time by setting edgeHoverExtremities to true.