Added correct copy constructor and copy operator

Moved to Foo(Foo& source) copy constructor and Foo& operator = (Foo&
rhs) copy operator.

Update the Control Systems to use a visitor pattern to load the
situation info.