Add JUnit-style output format to run_unit_tests.py.

This patch adds a new output format to the test driver execution script,
which captures test case output, collects results and emits them in a
form that other tools can consume. This mode is enabled by specifying
"--junit=<file.xml>" to the script.
Add support for 'ldflags_extra' in build system.

This patch adds the ability to specify extra (additional) flags to the
linker when bsl_gyp.py is executed (by adding a command line option
similar to '-D ldflags_extra=<flags>'). This parallels the existing
'cflags_extra' support.
Eliminate reliance on special CLANG_GNUC_* macros.

The BSL platform header relied on custom preprocessor macros that had
to be provided by the build system when Clang was used to compile. These
have been replaced with hardcoded values that configure the code to act
as if Clang was GCC 4.4.0.
Disable inlining for 'Debug' builds on GCC-type compilers.

Inlining interferes with debugging and also interferes with code
coverage analysis, so this patch disables it for Debug builds
when GCC or a compatible compiler is being used.
Import BSL-QC continuous integration job script.
Let 'make' process all code coverage, even if errors occur.
Correct some script errors.
Run lcov 'gather' step serially to avoid failures.
Add some copyright/license headers.
Disable profile/code coverage until tools are merged.
Import internal commit de0473a297248668b55a3385ba5eda7b73184ff3 : [APPROVAL] pending/master/restore_non_standard_bsl_hash_for_strings_drqs37540921 to master
Import internal commit 49a9b029b9417d6b4bfe8ff366c554d82e4fb7d8 : [APPROVAL] pending/master/bslalg_autoarray-move-destructor-usage-drqs-34554786 to master
Merge branch 'import' into import-test
Re-generate gyp files
Merge branch 'upstream-master' into import-test
Increase timeout to see how long bsl_hashtable.t takes to complete
Add support for running test drivers inside Valgrind.

This patch adds a '--valgrind' command line option to run_unit_tests.py. The option
accepts an argument which is a filename *pattern*. When this option is supplied,
each test case will be executed inside a Valgrind wrapper with the leak-check tool
enabled, and Valgrind's output will be directed (in XML format) to a file specified
by that pattern. The pattern will undergo string substitution with a single parameter,
which will be the test case number that is being executed (so the pattern should use
a "%d"-style format string to format it).
Correct some misspelled function names.
Add a 'Profile' configuration and code coverage tools.

This patch adds a 'Profile' configuration to common.gypi, and when the build
is done using GCC, adds specific compiler and linker flags to cause the library
and test drivers to be instrumented for profiling (and code coverage). In addition
it adds the 'tools/bsl_coverage' script which constructs a Makefile that uses 'lcov'
to gather and aggregate code coverage information, and it adds the 'lcov_cobertura'
tool which converts the lcov-style output into Cobertura-style output.
Revert "Disable profile/code coverage until tools are merged."

This reverts commit 25d61940a3a8bd8d1fae085081ae1c15aa96fa33.