Active state

Graphical elements in user interfaces have usually multiple states like hover, focus, and active. They are keys to enable great user interaction. For instance, one might create a plugin that drag all active nodes, which are eventually considered as "selected" elements. However Sigma.js supports only the hover state.

This pull request provides modifications of the sigma code to deal with active nodes and edges. Each node and edge may have the following attributes:
- active
- active_color
- active_size

Both canvas and webgl renderers use these information.

### Methods and indexes

New methods are provided along with their unit tests:
- `activateNodes(v, ?isActive)`
-  `activateEdges(v, ?isActive)`
- `activeNodes()`
- `activeEdges()`

And new indexes:
- `activeNodesIndex`
- `activeEdgesIndex`

Indexes are updated on `addNode`, `addEdge`, `dropNode`, `dropEdge`.

### Events

Sigma dispatches new events:
- `activeNodes` on `graph.activateNodes`
- `activeEdges` on `graph.activateEdges`

### Settings

New settings are now available to tune the rendering of active nodes and edges:
- `activeFont`
- `activeFontStyle`
- `nodeActiveColor`
- `defaultNodeActiveColor`
- `edgeActiveColor`
- `defaultEdgeActiveColor`

Their behavior is similar to the hover settings.

### Improved borders

We add the `nodeBorderColor` setting because it was missing. We also extend the notion of border by provided and outer border with the following settings:
- nodeOuterBorderColor
- outerBorderSize
- defaultNodeOuterBorderColor

For instance it's very nice to set the border color to white and the outer border color to the node color. I've also fixed a bug in the distance between the labels and the nodes, to take the borders sizes into account.

Limitations: WebGL renderers ignore borders like the vanilla Sigma.js.

Finally a new example is provided: active-state.html.