Mojo: Refactor (local) data pipe creation/initialization.

- Separate out the validation of options.
- Remove |Init()|. Now you can create the LocalDataPipe with your
  validated options.
- Once created, the LocalDataPipe has to be shut down correctly. (This
  was true before, but broken -- if you ran out of handles in
  MojoCreateDataPipe(), DCHECKs would fire.)
- Add tests for the new |DataPipe::ValidateOptions()|.
- Also add a minimal test for LocalDataPipe creation (which led to the
  discovery of the above bug, and consequently the above refactoring).
- Change the struct_size field of options to a |uint32_t|. This makes it
  much easier to reason about the size of the struct, which we need to
  be careful about.

R=sky@chromium.org

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@241393 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 241393
Move Skia's variables and defines to skia_common.

skia_library_opts was not being compiled with any of these defines.  Now it is.

Testing:
  1) build/gyp_chromium && ninja -C out/Debug
  2) Looked for Skia defines in .ninja files

master:
$ grep -l DSK *.ninja
filter_fuzz_stub.ninja
image_operations_bench.ninja
skia_chrome.ninja
skia_library.ninja

this CL:
$ grep -l DSK *.ninja
filter_fuzz_stub.ninja
image_operations_bench.ninja
skia_chrome.ninja
skia_library.ninja
skia_opts.ninja
skia_opts_none.ninja
skia_opts_ssse3.ninja

BUG=
R=bungeman@google.com

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@241394 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 241394