A detailed walk-through of an Unbounded Stack (from Test-Driven Development in Microsoft .NET Chapter 2)