2014-02-05 Antonio Gomes <a1.gomes@sisa.samsung.com>
        crash on createImage2D
        Issue #440

        Reviewed by TrustMe.

        Covered by the allocations' webcl app
        (translated from OpenCL by Anthony Liot).

        Clear use-after-free bug:

        void *data = 0;
        {
            data = ArrayBuffer::create(sizeInBytes, bytesPerElement)->data();
        }
        bleh(data); // 'data' has been free'd at this point already.

        Additionally, the way clImage gets allocated was wrong: it has to
        take width, height, channelOrder and channelType into account.

        * Modules/webcl/WebCLBuffer.cpp:
        (WebCore::WebCLBuffer::create):
        * Modules/webcl/WebCLContext.cpp:
        (WebCore::WebCLContext::createBufferBase):
        (WebCore::WebCLContext::createBuffer):
        (WebCore::WebCLContext::createImage2DBase):
        (WebCore::numberOfChannelsForChannelOrder):
        (WebCore::bytesPerChannelType):
        (WebCore::WebCLContext::createImage):
        * Modules/webcl/WebCLImage.cpp:
        (WebCore::WebCLImage::create):
fIX