Added Dictionary_instance__set

This class is intended to be a superclass of all the *__set classes. This will help to removve duplicate code
Took Dependency on Dictionary_instance__set

Explicit_item_id__set, Implicit_item_id__set, Interface_spec__set, Global_rule__set and Uniqueness_rule__set became subclass of Dictionary_instance__set.
Lot of Duplicated code was removed this way
Made Where_rule__list a subclass.

The superclass was Dictionary_instance__set
Added a missing return statement
Made SingleLinkList class thread safe

This was done by adding a mutex. Also a cmake file was modified inorder to compile the above changes.
Made Dictionary_instance__set thread safe.
Made Global_rule thread safe by using a mutex.

Even though its superclass i.e Dictionary_instance__set was made thread safe, thread safety in functions 'entities_' and 'where_rules_' was being violated
Made Schema thread safe by using 3 mutexes.

The 3 mutexes were used to protect the _function_list, _procedure_list & _global_rules data structures.
The first two are vectors. The last is already a thread safe structure, however its being lazy-initilized hence a mutex is needed.
Added test to check thread safety of Registry class

The Entity, Schema and Type operations are tested. For each, there are 3 checks: Add-Add, Remove-Remove, Add-Remove.
For every check the two operation are done first serially and then parallely. Their results are then compared.
Made the Registry entity operation thread safe

The checks related entity operations in Registry_thread_safety_test now pass.
Made Registry Schema and Type operations thread safe

All the checks in Registry_thread_safety_test now pass