func New() *List {
	return new(List).Init()
}
New returns a new initialized List instance ready to be added to.
package linkedlist
type Node struct {
	next, prev *Node
	Value      interface{}
}
func (n *Node) Next() *Node {
	if e := n.next; e.Value != nil {
		return e
	}
	return nil
}
func (n *Node) Prev() *Node {
	if e := n.prev; e.Value != nil {
		return e
	}
	return nil
}
type List struct {
	sentinel Node
	size int
}
func (l *List) Init() *List {
	l.sentinel.next = &l.sentinel
	l.sentinel.prev = &l.sentinel
	l.size = 0
	return l
}