Initial work toward making ///mojo/public flexible wrt root dir.

This CL takes the first steps toward making //mojo/public parameterizable with
respect to its location in the source tree as part enabling a standalone Mojo
SDK.

To handle dependencies on targets within the public SDK, this CL introduces
//mojo/public/mojo_sdk.gni, which allows targets within the public SDK to
specify dependencies on other targets within the public SDK relative to the
directory that contains the public SDK. mojo_sdk.gni defines a mojo_root
variable, which points to the parent directory of the Mojo SDK (i.e., of
mojo/public). It additionally contains a mojo_sdk_source_set template, which
generates a source_set from the input by rewriting all dependencies that are
given relative to mojo_root (via a |mojo_sdk_deps| variable) to be relative to
the current directory.

To handle include paths, this CL introduces
//mojo/public/build/config/BUILD.gn, which defines a mojo_sdk config that adds
mojo_root and (root_gen_dir + mojo_root) as include_dirs.  mojo_sdk_source_set
adds the mojo_sdk config as a public config in order to ensure that the SDK
targets as well as their dependencies have the right include paths.

Finally, mojom.gni and mojo_application.gni are also changed to avoid
hardcoding "//mojo/public".

R=jamesr@chromium.org

Committed: https://chromium.googlesource.com/external/mojo/+/b419edd2bc8181c59f60f2621a31b592c83d32b1

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