Add basic support for ESSL3 vec2 (un)pack functions

The functions are emulated on HLSL, and use the native functions on
OpenGL 4.2+ and GLES3.0. Emulation for OpenGL versions <= 4.1 is not yet
implemented.

BUG=angle:865

Change-Id: I6803a1767dacdb3dca12f13924651fd38fcacb75
Reviewed-on: https://chromium-review.googlesource.com/240961
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: Olli Etuaho <oetuaho@nvidia.com>
diff --git a/src/compiler/translator/IntermNode.cpp b/src/compiler/translator/IntermNode.cpp
index 49bf8cf..d4aab63 100644
--- a/src/compiler/translator/IntermNode.cpp
+++ b/src/compiler/translator/IntermNode.cpp
@@ -334,6 +334,9 @@
       case EOpVectorLogicalNot:
       case EOpIntBitsToFloat:
       case EOpUintBitsToFloat:
+      case EOpUnpackSnorm2x16:
+      case EOpUnpackUnorm2x16:
+      case EOpUnpackHalf2x16:
         return true;
 
       default: