Implemented survey component classes

Implementations and changes to the previously submitted code skeleton
for simple survey creation; added another class to generate IDs for the
different components. Still in the process of testing some of the Survey
functions, have tested most of the others.