func NewPartition(pool Pool, buffers ...Buffer) Buffer {
	return &partition{
		Pool: pool,
		List: buffers,
	}
}
NewPartition returns a Buffer which uses a Pool to extend or shrink its size as needed.
It automatically allocates new buffers with pool.Get() to extend is length, and
pool.Put() to release unused buffers as it shrinks.
package buffer
import (
	"encoding/gob"
	"io"
	"math"
)
type partition struct {
	List
	Pool
}