orlyc/code_gen: When the dependency set only contains one item, it must be that item's times.

NOTE: This is a workaround for a deeper bug in the topological sort / dependency order finding, but it fixes a non-compiling chunk of code:

get_kgrams = (recur(.texts: split_text)) where {
  text = given::(str);
  k = given::(int);
  split_text = ((text split "[ ,]").0 if not (that is empty)) as [str];
  recur = ((empty [[str]]
            if length_of texts < k
            else [texts[:k]] + recur(.texts: texts[1:]))) where {
    texts = given::([str]);
  };
};
Merge pull request #102 from cmaloney/issue-96

orlyc/code_gen: When the dependency set only contains one item, it's the end of the topological sort
base/uuid: Prevent initialization races

Using statics inside functions C++ guarantees initialization (thread safe even)
orly/core_import: Initializing variables always is a good habit
Use Twister UUID generation rather than Best for Twitter dataset

The global static initialization order bug is gone now for TUuid
base/uuid: Use constexprs for StrSize / MinBufSize

Makes them compile away more, and be thread safe.
Add script for running demo oryli
Merge pull request #104 from cmaloney/misc_import_fixes

Misc import fixes
Merge pull request #106 from cmaloney/demo_script

Add script for running demo oryli
base/stl_utils: Use nullptr
base/stl_utils: Remove outdated Find() function

.at() provided by the STL gives the same semantics.
base/subprocess: Add a WaitForAll which waits for any child process to exit
jhm/naming: Add 'Contains' to TAbsBase
jhm/naming: Add two more convenience functions
base/path_utils: Use free() in GetCwd(), so it matches the malloc that the system uses
path_utils: Use unique_ptr but explicitly specify the deleter to be free()
Move std::swap to use ADL, the preferred method for C++11