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]);
  };
};
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
tools/nycr: Make it so nycr can output a JSON language report file
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()
Fully compiling JHM

Doesn't have any registered jobs, but if you ask it to build a file which
exists it doesn't SIGSEGV/terminate/etc.

Updated readme
Add program which takes a given file and creates a file which lists its dependencys (.dep)
jhm: First working job (A C/C++ dependency file generator).

Dep files are json lists of files included by a C/C++ file.

Includes misc. changes around the codebase to get things working right.
jhm: Allow jobs to indicate that just because they ran, they may not be complete

If they're not complete, we'll make sure to finish all the things now in their 'Needs' set, then get/run the command again.
jhm: TEnv::TryFindFile -> TEnv::GetFile

The function always returns a file, so it's not really a 'Try'.
Implement configuration system for JHM

Allows stacking multiple Json config files together and having them automatically combine sections.
jhm: rename TCDep job to TDep as it builds arbitrary dependency files.
jhm: Add a "Compile C/C++" job.

Includes misc. changes to make things work with more jobs / fix misc. bugs uncovered.
jhm: Fix work finder bugs

 - Reverse backwards bool in fast exit of TWorkFinder::Queue
 - Make working have a tighter definition (We loop needlessly less)
 - Fix indentation of TWorkFinder::ProcessReady
jhm/job/dep: Remove old comments
jhm: Add a link job. Gets basic binaries compiling.