function drawLayers(ctx, height, width, layers, drawIteration) {
  ctx.clearRect(0, 0, width, height);
  layers.forEach(layer => {
    const {interpolator, newProps, animation} = layer;
    // return an empty object if dont need to be animating
    const interpolatedProps = animation
      ? interpolator
        ? interpolator(drawIteration / MAX_DRAWS)
        : interpolator
      : () => ({});
    layer.renderLayer(
      {
        ...newProps,
        ...interpolatedProps
      },
      ctx
    );
  });
}
Loops across each of the layers to be drawn and draws them
@param {CanvasContext} ctx - the context where the drawing will take place
@param {Number} height - height of the canvas
@param {Number} width - width of the canvas
@param {Array} layers - the layer objects to render
@param {Number} drawIteration - width of the canvas