trying out d3

Once its moved there, could we also check:
  - That it draws the text we are expecting for each circle. We can get the text that has been drawn doing something like `svg.find('.circle').eq(<index_of_circle>).find('text').text()`.
  - That it redraws the text properly when new data is bound (similar to what we are doing for the color text at the moment).