Buffer: Pass Context to all impl methods.

This allows us to retrieve Device handles for Vulkan, and could allow
us to avoid storing some pointers for other back-ends.

BUG=angleproject:1684

Change-Id: Iccd5b97cf1c3a332d62a38ad0fcf21c352270439
Reviewed-on: https://chromium-review.googlesource.com/426400
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/Context.cpp b/src/libANGLE/Context.cpp
index 7abacf4..245a980 100644
--- a/src/libANGLE/Context.cpp
+++ b/src/libANGLE/Context.cpp
@@ -3098,7 +3098,7 @@
     Buffer *buffer = mGLState.getTargetBuffer(target);
     ASSERT(buffer);
 
-    Error error = buffer->map(access);
+    Error error = buffer->map(this, access);
     if (error.isError())
     {
         handleError(error);
@@ -3114,7 +3114,7 @@
     ASSERT(buffer);
 
     GLboolean result;
-    Error error = buffer->unmap(&result);
+    Error error = buffer->unmap(this, &result);
     if (error.isError())
     {
         handleError(error);
@@ -3132,7 +3132,7 @@
     Buffer *buffer = mGLState.getTargetBuffer(target);
     ASSERT(buffer);
 
-    Error error = buffer->mapRange(offset, length, access);
+    Error error = buffer->mapRange(this, offset, length, access);
     if (error.isError())
     {
         handleError(error);
@@ -3596,7 +3596,7 @@
     Buffer *readBuffer  = mGLState.getTargetBuffer(readTarget);
     Buffer *writeBuffer = mGLState.getTargetBuffer(writeTarget);
 
-    handleError(writeBuffer->copyBufferSubData(readBuffer, readOffset, writeOffset, size));
+    handleError(writeBuffer->copyBufferSubData(this, readBuffer, readOffset, writeOffset, size));
 }
 
 void Context::bindAttribLocation(GLuint program, GLuint index, const GLchar *name)