D3D11: Fix basic ReadPixels from 3D attachments.

Use the TextureHelper class to abstractly handle 2D and 3d textures.

Also refactor the Image11 copy methods to be a bit cleaner and not
use the copy conversion path when unnecessary.

This patch does not yet fix layer attachments - the fix for that will
come up in a subsequent patch.

BUG=angleproject:1290

Change-Id: If8b7aa8848ca4260e0dde690e7a99e115a97fabb
Reviewed-on: https://chromium-review.googlesource.com/323442
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/tests/test_utils/ANGLETest.cpp b/src/tests/test_utils/ANGLETest.cpp
index d2de0be..d1a3c32 100644
--- a/src/tests/test_utils/ANGLETest.cpp
+++ b/src/tests/test_utils/ANGLETest.cpp
@@ -23,6 +23,11 @@
 {
 }
 
+GLColor::GLColor(GLuint colorValue) : R(0), G(0), B(0), A(0)
+{
+    memcpy(&R, &colorValue, sizeof(GLuint));
+}
+
 GLColor ReadColor(GLint x, GLint y)
 {
     GLColor actual;