Differentiate texture and renderbuffer framebuffer attachment capabilities

ANGLE used to describe the abitily to attach textures and renderbuffers
of a specific format to a framebuffer using a single notion of "renderable".
However, for some formats, only one can be supported, but not the other.

Split TextureCaps::renderable into textureAttachment and renderbuffer.
Also, split InternalFormat::renderSupport into
textureAttachmentSupport and renderbufferSupport.

The only functional change is in a few places which now explicitly check
for texture or renderbuffer attachement support.
Information in format support tables was duplicated for the two capabilities,
so behavior should remain the same. It should be corrected in future CLs.

Note: additional information in those tables may need to be added
in order to properly support GenerateMipmap and TexStorage2DMultisample,
this is beyond the scope of this CL.

Bug: angleproject:2567
Change-Id: I18bce4100525be35709d8bbf4de08ec812aab502
Reviewed-on: https://chromium-review.googlesource.com/1086491
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/validationES2.cpp b/src/libANGLE/validationES2.cpp
index 1fa3781..eb497b5 100644
--- a/src/libANGLE/validationES2.cpp
+++ b/src/libANGLE/validationES2.cpp
@@ -6110,7 +6110,7 @@
     bool formatUnsized = !format.sized;
     bool formatColorRenderableAndFilterable =
         format.filterSupport(context->getClientVersion(), context->getExtensions()) &&
-        format.renderSupport(context->getClientVersion(), context->getExtensions());
+        format.textureAttachmentSupport(context->getClientVersion(), context->getExtensions());
     if (!formatUnsized && !formatColorRenderableAndFilterable)
     {
         ANGLE_VALIDATION_ERR(context, InvalidOperation(), GenerateMipmapNotAllowed);