Interface Based Programing Demo

Starting a series on interface based programing. Added the first demo program.
The purpose is to give an introduction to the concepts of interfaces and
their implementations.
Added demo to the concept of ADTs.