Monitor reads memory/disk/cores limits from env.

If the environment has the variables CORES, MEMORY, or DISK, the monitor
uses their values as resource limits.
Makeflow reads cores/disk/resources from file.

Tasks in makeflow can be group with the variable RESOURCES_CATEGORY as
follows:

RESOURCE_CATEGORY=category_one
DISK=100
CORES=3

output1: ...
output2: ...
output3: ...

RESOURCE_CATEGORY=some_other_category
DISK=100
CORES=3
MEMORY=3

output4: ...

The value of the resources apply to the name of the category last
assigned to RESOURCES_CATEGORY, therefore, the following is equivalent
to the above:

RESOURCE_CATEGORY=category_one
DISK=100
CORES=3

RESOURCE_CATEGORY=some_other_category
DISK=100
CORES=3
MEMORY=3

RESOURCE_CATEGORY=category_one
output1: ...
output2: ...
output3: ...

RESOURCE_CATEGORY=some_other_category
output4: ...

One thing to consider, for now, is that resources are applied to the
category when submitting to the queue, and that a category uniquely
identifies a set of resources. Therefore, for:

RESOURCE_CATEGORY=some_category
CORES=3

output: ...

RESOURCE_CATEGORY=some_category
CORES=1

The rule will get CORES=1, rather than CORES=3, which might be somewhat
confusing, and should be changed in the future (or at least produce a
visible warning).
Task categories as wq batch options.

Converts a category definition to:

--cores CORES --memory MEMORY --disk DISK

if the resources were defined for such category and if the batch system
is work queue, and then prepends BATCH_OPTIONS with this string.
This is prepended, rather than appended  to allow an explicit value
to BATCH_OPTIONS to override the values.