kmk: Add more configurable defines in mozilla-config.h.
kmk: Add INCLUDE_SUBDIRS support for compact writing.
kmk: Work around kBuild bug in INSTALLS inheritance.

kBuild r2687 doesn't properly inherit PRE and POST hooks for file
install targets when processing EXTENDS and we need them in some places.
kmk: Install all INSTALLS targets containing `_exports` before compiling any C/C++ file.

This makes sure that the exported headers are in place when compiling modules.
kmk: Add support for multi-task mode to TASKS targets.

This mode allows to process each source file with an individual
recipe instead of processing them all at once as in normal mode.

This commit also adds inheritance to TASKS targets which makes
it a really powerful tool for "high-level" describing of custom
compile/build tasks.
kmk: Add base task for compiling .idl files to .xpt/.h.

This task makes sure that all headers are generated and placed
to the include directory before compiling source code.
kmk: Generate protocol headers and sources from .ipdl files.
kmk: Add COPY_PROPS funciton to copy properties between targets and templates.

This function copies all variants of the property (like .os2, .win and so on)
which makes it different from a single direct assignment which doesn't involve
variants.
kmk: Build xpcom libraries.

This includes generating all required headers from variuos modules.