    link.label(index, properties)

Set `properties` on a label indexed by `index`. A link can have multiple labels each having different position and attributes.

`labels`

    {
            position: <number>,
            attrs: { <selector>: <SVG attributes> }
    }

Where `position` is the position of the label with regard to the link `.connection` SVG path. If the `position` is in `[0,1]` interval then the position of the label is considered to be defined as a percentage of the total length of the `.connection` path. E.g. position `0.5` puts the label to the middle of the link. If the position is `>1` then the label will be put `position` pixels starting from the beginning of the `.connection` path. `position <0` puts the label `Math.abs(position)` pixels starting from the end of the `.connection` path.

`attrs` is again an object with CSS selectors as keys and SVG attributes as values. The label markup is defined as follows:

    <g class="label">
    <rect />
    <text />
    </g>

Where `<rect>` is a box below the label.

    link.label(0, {
        position: .5,
        attrs: {
            rect: { fill: 'white' },
            text: { fill: 'blue', text: 'my label' }
        }
    });