Refactored TransformFeedback for multi-platform ANGLE and added tests.

Added angle_implementation_unit_tests target designed for testing the
cross-platform code in libGLESv2, and libGLESv2_static target as a
dependency. The goal is to incorporate these tests into Chromium's
angle_unittests target on all platforms; however, more work is needed
to make libGLESv2's common code compile on non-Windows platforms, so
this is an intermediate step.

BUG=angle:719

Change-Id: Ifc44a779352294e857d6e913d9b997a60674c443
Reviewed-on: https://chromium-review.googlesource.com/214105
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Kenneth Russell <kbr@chromium.org>
diff --git a/src/libGLESv2/Context.cpp b/src/libGLESv2/Context.cpp
index fc1ca08..671bb1c 100644
--- a/src/libGLESv2/Context.cpp
+++ b/src/libGLESv2/Context.cpp
@@ -101,7 +101,7 @@
     // In the initial state, a default transform feedback object is bound and treated as
     // a transform feedback object with a name of zero. That object is bound any time
     // BindTransformFeedback is called with id of zero
-    mTransformFeedbackZero.set(new TransformFeedback(0));
+    mTransformFeedbackZero.set(new TransformFeedback(mRenderer->createTransformFeedback(), 0));
     bindTransformFeedback(0);
 
     mHasBeenCurrent = false;
@@ -262,7 +262,7 @@
 GLuint Context::createTransformFeedback()
 {
     GLuint handle = mTransformFeedbackAllocator.allocate();
-    TransformFeedback *transformFeedback = new TransformFeedback(handle);
+    TransformFeedback *transformFeedback = new TransformFeedback(mRenderer->createTransformFeedback(), handle);
     transformFeedback->addRef();
     mTransformFeedbackMap[handle] = transformFeedback;
     return handle;