add option to limit job execution dependant on memory consumption (-m)

setting a value in range [0,100] for -m limits starting of new jobs. once
the limit has been exceeded at most one single job is run at a time.

this aims at C++ make projects that run into memory limitations when
building expensive (in regards to memory) compilation units, e.g. caused
by massive template instantiations.

Signed-off-by: Matthias Maennich <matthias@maennich.net>