Convert GN visibility variables to lists.

Currently this is either a list or a string. However, this is causing some problems because templates can't add to the invoker's visibility list without knowing if the original is a string or a list.

In an effort to make this consistent, I'm converting all visibiltiy to be lists, and will remove support for strings in a future build.

This exempts cld from header checking since it was confusing GN's header checker. It adds a ppapi header target as well that will be used by libyuv (that requires a roll).

TBR=scottmg

Review URL: https://codereview.chromium.org/544423002

Cr-Original-Commit-Position: refs/heads/master@{#293638}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 9af4262ad8020658ee04c07d13a2617af64147b1
diff --git a/yasm_assemble.gni b/yasm_assemble.gni
index 5dc4c7c..78037b8 100644
--- a/yasm_assemble.gni
+++ b/yasm_assemble.gni
@@ -110,7 +110,8 @@
   source_set_name = target_name
 
   action_foreach(action_name) {
-    visibility = ":$source_set_name"  # Only the source set can depend on this.
+    # Only the source set can depend on this.
+    visibility = [ ":$source_set_name" ]
 
     script = "//third_party/yasm/run_yasm.py"
     sources = invoker.sources