Make Set Data Type Generic

The set is made a generic by the use of an interface. Since interface{} type
can take data of any type, we can leverage this to provide a generic API
which will work across Data Types.

Fixes #1