function getBGCandidateFromLayers(layers) {
  if (!layers) return

  log(3, 'Getting background candidate from layers', layers)

  var candidate
  var existingBackground = layers.find(function(layer) {
    if (shouldLayerBeIgnored(layer))
      return false

    if (canLayerHavePadding(layer)) {
      if (layerHasPadding(layer)) {
        return true
      } else if (!candidate) {
        candidate = layer
      }
    }

    return false
  })

  log(3, (existingBackground ? 'Existing background: ' + existingBackground.name() : (candidate ? 'New candidate: ' + candidate.name() : 'No candidate')))

  return existingBackground ? existingBackground : candidate
}
Given an array of layers get the best candidate
If a layer is already the background layer, then use it
Otherwise get the first match that a Shape, or Symbol Instance