goldfish-opengl: nuke SubAlloc and HostMemAlloc

... and use the CoherentMemory class instead.  The new
implementation uses RAII, simplifies the current code and uses
the VirtGpuDevice layer.  CoherentMemory memory can be created
from a GoldfishAddressSpaceBlock or a VirtGpuBlobMapping, but
if everyone switches to virtgpu we can eliminate the former.

Performance-wise, on virtgpu the new implementation is somewhat
more efficient in running CTS.

time ./deqp-vk --deqp-case=dEQP-VK.memory.* 

(Currently)
-----------------
  real 11m52.702s
  user 5m55.017s
  sys 1m1.388s

(After this patch)
----------------
  real 8m43.534s
  user 5m39.027s
  sys 0m55.800s 

My best guess is HIGHEST_BUFFER_OR_IMAGE_ALIGNMENT doesn't necessarily
need to be 64kb everywhere.  I arbitarily set it equal to 4096 bytes
from virtgpu, but it's entirely possible no page alignment is needed for
suballocated blobs.

Ideally, the app (ANGLE) would optimize memory management and Vulkan
wouldn't have to do any guessing.  Someone should take a closer look
at this suballocation logic, there's likely some easy performance wins.

BUG=233803018
TEST=./deqp-vk --deqp-case=dEQP-VK.memory.*

Change-Id: I8ed1cc1bb79a7edd3768bd34e6620ec377d1d16e
4 files changed