Towards a better pond - C#

We're going to develop our pond to model a two dimensional rectangular grid
over time, providing and consuming data along its boundaries (oriented North,
South, East and West). The data will be presented in arrays of double
precision numbers with 8 elements for the North and South boundaries and 6
elements for the East and West.

We're going to connect the Eastern boundary of our Pond #1 to the the Western
boundary of our Pond #2.

Where our first simple Pond component could simply take inputs and use them to
calculate outputs, our new improved Pond is going to have to maintain its state
between timesteps - specifically the state of its grid of values. Bear this in
mind when we come to make changes to our code.