[scenic] New Gpu Allocator Interface

GpuAllocator now allocates Memory, Buffers, and Images. All factory functions that allocate new memory are expected to go through some instance of a GpuAllocator (mostly, for tracking purposes).

All other related factory functions (e.g., GpuMem::New) have been removed. All remaining functions have been renamed to reflect their usage (e.g., Image::New has been renamed to Image::AdoptImage, since it does not allocate a new Image object, but only wraps an existing image and/or allocation).

This also converts Image, similar to Buffer, to not have its own concept of a buffer offset. A suballocated GpuMem object is passed in instead.

Finally, this fixes SCN-273, as escher::Buffer objects can now be constructed that point to host memory.

tested=scenic_tests, manual running of sketchy_service, hello_scenic
SCN-273 #done

Change-Id: Ie870f1c9795db7f29ad33c6f67ff335d29c41270
56 files changed