Shrink chrome_elf.dll by switching source_sets to static_library

Investigation of why official chrome_elf.dll builds were 86,016 bytes
larger on gn than gyp showed that encryption functions such as
aesni_cbc_encrypt were being pulled in. Deleting the implementations
of these functions from the .asm file caused no errors which proved that
the functions weren't being referenced, they just weren't being
discarded. Changing the yasm_assemble template to use static_library
fixed that and made the file sizes identical.

Comparison of the dia2dump -p output after that change showed there were
still two extra symbols in the gn builds:
  class breakpad::CrashKeysWin * breakpad::CrashKeysWin::keeper_
  __aullrem(__aullrem)

keeper_ is a global variable - those are harder to discard, even with
/Gw - but making its source file part of a static_library fixed it.

link /verbose showed that __aullrem is pulled in by an object file that
is then discarded but I decided that following that trail wasn't worth
it. The file sizes are identical and dumpbin /headers shows that the
.text sections virtual size is just 96 bytes larger in the gn case.

Additional changes of source set to static_library may address the
remaining diffs, but they are not large enough to matter.

TL;DR The linker tries to discard unreferenced symbols but it is not
perfect at doing it, even with /Gw and /Gy. Assembly functions may be
difficult also. Use source_set with care.

BUG=624274

Review-Url: https://codereview.chromium.org/2114783002
Cr-Original-Commit-Position: refs/heads/master@{#403480}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 0ab90cb1edf8f08f1fa5d2551aa21cac225163cf
diff --git a/yasm_assemble.gni b/yasm_assemble.gni
index feaba1f..73d5548 100644
--- a/yasm_assemble.gni
+++ b/yasm_assemble.gni
@@ -182,7 +182,7 @@
   # Gather the .o files into a linkable thing. This doesn't actually link
   # anything (a source set just compiles files to link later), but will pass
   # the object files generated by the action up the dependency chain.
-  source_set(source_set_name) {
+  static_library(source_set_name) {
     if (defined(invoker.visibility)) {
       visibility = invoker.visibility
     }