insertBefore (target, node) {
    node.prev = target.prev
    node.next = target
    if (!node.prev) {
      this.head = node
    } else {
      node.prev.next = node
    }
    target.prev = node
  }
Inserts a `node` before `target`, it's assumed that
`target` belongs to this doubly linked list

@param {*} target
@param {*} node