Error handling for clEnqueueTask
Fixed error in OpenCL just-in-time evaluation, #596
Added testing of OpenCL in codegen example
Stopped using -stdlib=libc++ option since it caused conflicts with IPOPT. Introduced optional use of std::tr1::unordered_map if std::unordered_map is not available. Dropped use of initializer lists for initializing vectors. These changes can be reverted once C++11 is fully supported by compilers.