Bug 1041960 - Remove subtiers from make backend. r=gps
Bug 1036894 part 1 - Move MAKE_FRAMEWORK, SDK_LIBRARY, SHARED_LIBRARY_NAME and STATIC_LIBRARY_NAME to moz.build. r=gps

At the same time, make the Library data more useful in the build frontend.
Bug 1036894 part 2 - Add proper frontend data for HOST_LIBRARY_NAME instead of using a passthrough. r=gps
Bug 1036894 part 3 - Emit objects for programs after emitting libraries. r=gps
Bug 1036894 part 4 - Allow to track library linkage for all kinds of programs and libraries. r=gps
Bug 1036894 part 5 - Hook the USE_LIBS and HOST_USE_LIBS moz.build variables to library linkage. r=gps
Bug 1036894 part 6 - Emit SimplePrograms for CPP_UNIT_TESTs, and make the corresponding moz.build config look like that of SIMPLE_PROGRAMS. r=gps
Bug 1036894 part 7 - Move HOST_LIBS to moz.build, as HOST_USE_LIBS. r=gps
Bug 1036894 part 8 - Move most in-tree library linkage information to moz.build, as USE_LIBS. r=gps
Bug 1036894 part 9 - Replace all EXTRA_DSO_LDOPTS, SHARED_LIBRARY_LIBS and LIBS with EXTRA_LIBS, OS_LIBS or OS_LDFLAGS, appropriately. r=gps

OS_LIBS for libraries that are not part of the gecko tree, EXTRA_LIBS for
libraries, such as NSPR, that are in the tree, but are not handled by
moz.build just yet. Those EXTRA_LIBS may also come from a system library.
However, in cases where the expanded variables are always empty for the
in-tree case, OS_LIBS is used (as for, e.g. MOZ_ZLIB_LIBS). OS_LDFLAGS is
used exclusively for non-library linker flags.

Always pass EXTRA_LIBS before OS_LIBS on linker command lines.

Forbid EXTRA_DSO_LDOPTS, SHARED_LIBRARY_LIBS and LIBS in Makefiles.
Bug 1036894 part 10 - Documentation for programs and libraries in moz.build world. r=gps
Bug 1041820 - Replace DefaultOnReadDict with defaultdict. r=gps
Bug 1041839 - Write all-tests.json faster. r=gps
Bug 1041936 - Allow static library definitions to depend on shared libraries. r=gps
Bug 1041936 part 2 - Directly use the static library "xul" to link into "xul-gtest" instead of having an intermediate library "xul" used by "xul-shared" and "xul-gtest". r=gps