function inset (frame, top, right, bottom, left) {
  var frameCopy = clone(frame);

  // inset(myFrame, 10, 0) => inset(myFrame, 10, 0, 10, 0)
  if (typeof bottom === 'undefined') {
    bottom = top;
    left = right;
  }

  // inset(myFrame, 10) => inset(myFrame, 10, 10, 10, 10)
  if (typeof right === 'undefined') {
    right = bottom = left = top;
  }

  frameCopy.x += left;
  frameCopy.y += top;
  frameCopy.height -= (top + bottom);
  frameCopy.width -= (left + right);

  return frameCopy;
}
Creates a new frame by a applying edge insets. This method accepts CSS
shorthand notation e.g. inset(myFrame, 10, 0);

@param {Frame} frame
@param {Number} top
@param {Number} right
@param {?Number} bottom
@param {?Number} left
@return {Frame}