Allocate surface IDs on client side

This is much easier to manage for clients using surfaces in an
asynchronous way (i.e. over a mojo pipe or chromium IPC). The code
translating from the IPC layer to SurfaceFactory can validate that the
namespace of SurfaceIds matches the logical connection it is managing.

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@280950 0039d316-1c4b-4281-b951-d872f2087c98
22 files changed