A Generic CircularBuffer for .NET