function arrayFlatten (array, depth) {
  if (depth == null) {
    return flattenForever(array, [])
  }

  return flattenWithDepth(array, [], depth)
}
Flatten an array, with the ability to define a depth.

@param  {Array}  array
@param  {Number} depth
@return {Array}