Add variables to existing set

This replaces the recursive creation of variable
sets. In this way the number of copying operations
is reduced significantly. Moreover, the dynamic
memory allocation without free'ing is removed.
Add dual clauses and atomics to lists; do not copy

These were causing stack overflows.
Merge pull request #12 from jeroenk/memory

Two memory allocation related changes