2014-02-27  Sharath Kamath  <s.kamath@samsung.com>

        Implement async variant of WebCLCommandQueue::finish

        Issue #424

        Reviewed by Antonio.

        WebCL specification says a async variant of WebCLCommandQueue::finish() API.
        Since OpenCL does not provide the same, when JS user wants a async finish
        we call the finish on a new Thread and then call the callback from that Thread.

        Also adding a Flag to mark a queue as blocked, once finish() is called on the queue.

        conformance/bindingTesting/queues/cl_commandQueue_finish.html

        * Modules/webcl/WebCLCommandQueue.cpp:
        (WebCore::WebCLCommandQueue::WebCLCommandQueue):
        (WebCore::WebCLCommandQueue::finish):
        (WebCore::WebCLCommandQueue::threadStarterWebCL):
        (WebCore::WebCLCommandQueue::finishImpl):
        * Modules/webcl/WebCLCommandQueue.h:
        * Modules/webcl/WebCLCommandQueue.idl: