oelite: DictMeta: use None when dependency set is empty
oelite: DictMeta: use None when dependency set is empty

Many dependency sets in the expand_cache are empty, and storing all
these empty sets costs _a lot_ of memory. Replace these by None.

There may be some places left in the code base that expects the second
member of the tuple expand_cache["foobar"] to be a set instance, but I
haven't found any more. If someone gets an error like "'NoneType'
object has no attribute 'add'" or "'NoneType' is not iterable", it
should be rather easy to fix.

In my test case, the number of empty sets drops from 62952 to 7400,
and the top-4 memory-eaters go from

Total 963686 objects, 162 types, Total size = 277.8MiB (291258042 bytes)
 Index   Count   %      Size   % Cum     Max Kind
     0  477849  49 205125720  70  70  196888 dict
     1  165064  17  54145344  18  89    4328 set
     2  188808  19  13768624   4  93     456 tuple
     3   71836   7   7746342   2  96   44688 str

to

Total 907746 objects, 162 types, Total size = 265.4MiB (278284648 bytes)
 Index   Count   %      Size   % Cum     Max Kind
     0  477849  52 205125720  73  73  196888 dict
     1  109159  12  41175384  14  88    4328 set
     2  188808  20  13768624   4  93     456 tuple
     3   71836   7   7746300   2  96   44688 str

sknsean/core,sknsean/core,sknsean/core,sknsean/core,sknsean/core