Drawing without current program is not an error.

The spec states that "If UseProgram is called with program set to zero,
then there is no current program object, and the results of vertex and
fragment shader execution are undefined. However, this is not an
error."

Fixes all failures in:
dEQP-GLES3.functional.negative_api.vertex_array.*

Change-Id: Ia5fbb22a9447b299665db29fc1f564f6de4f202d
Reviewed-on: https://swiftshader-review.googlesource.com/14408
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/OpenGL/libGL/Context.cpp b/src/OpenGL/libGL/Context.cpp
index 4922ecb..f74ebda 100644
--- a/src/OpenGL/libGL/Context.cpp
+++ b/src/OpenGL/libGL/Context.cpp
@@ -2477,7 +2477,7 @@
 {
 	if(!mState.currentProgram)
 	{
-		return error(GL_INVALID_OPERATION);
+		return;
 	}
 
 	if(!indices && !mState.elementArrayBuffer)
diff --git a/src/OpenGL/libGLESv2/Context.cpp b/src/OpenGL/libGLESv2/Context.cpp
index ede3df6..455508b 100644
--- a/src/OpenGL/libGLESv2/Context.cpp
+++ b/src/OpenGL/libGLESv2/Context.cpp
@@ -3467,7 +3467,7 @@
 {
 	if(!mState.currentProgram)
 	{
-		return error(GL_INVALID_OPERATION);
+		return;
 	}
 
 	sw::DrawType primitiveType;
@@ -3523,7 +3523,7 @@
 {
 	if(!mState.currentProgram)
 	{
-		return error(GL_INVALID_OPERATION);
+		return;
 	}
 
 	if(!indices && !getCurrentVertexArray()->getElementArrayBuffer())