refactor ninja build

Just playing around with how to factor Ninja builds best.

I am sort of thinking ahead to bots for this, where this factorization
makes it easy to drop in any compiler by writing a short .ninja file.
E.g. running ninja -f cc.ninja will build with cc into out/cc:

    cc.ninja
    ========
    cc  = cc
    out = out/cc
    include build/common

This expands the default `ninja` run to the full {clang,gcc} x
{vanilla,native,portable,xsan} product, though notably GCC doesn't
support -fsanitize=integer.  And I've added 'tiny' targets without debug
symbols to help us keep an eye on binary size.

Experiemental MSAN and TSAN... clang.tsan works on Mac, but the
other three don't.  I expect they'll work fine on Linux.

Change-Id: Ia484601f37f7fca625b06aa785f04d7b1175ec8f
Reviewed-on: https://skia-review.googlesource.com/93260
Reviewed-by: Brian Osman <brianosman@google.com>
16 files changed