Add new Ozone surface API.

This CL adds the new API for how ozone platforms will create GLSurfaces.
Now that //ui/ozone can depend on //ui/gl, the platform can create a
GLSurface directly. SurfaceFactoryOzone has methods added for creating
regular, surfaceless and offscreen surfaces. It also has a temporary
method that will allow us to switch platforms over one by one.

Small build file change to remove an unnecessary dep on //ui/base from
//ui/gl. Since it was in public_deps, a few downstream changes to
targets that depend on //ui/gl are needed as well.

This is the start of step 3 in the associated bug.

BUG=611142
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2122243002
Cr-Commit-Position: refs/heads/master@{#406922}
11 files changed