Draw Campaign Builder components

Because d3 bugs often happen when new data is bound and the component is re-drawn, I think our component tests should have two steps:
  1. How the component was drawn when data was bound for the first time
  2. How the component was drawn when data was bound again (so things have entered, exited and updated). It allows us to, for example, check that we aren't appending new child elements every draw.

At the moment, our component tests do the first step. Having both steps would ensure our components are safe for redraws.

@andreit would you be okay with taking this approach in tests?