base/json: Simplify Contains()
base/json: Remove whitespace
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
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.
Add program which takes a given file and creates a file which lists its dependencys (.dep)
jhm/naming: Add two more convenience functions
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