Remove global variable SymbolTable::nR and make the code re-entrant.

Change-Id: Ie4cc8329398063b82b34cde5568686f48363ee1a
Let's try to only surround code that may throw with try-catch block.

While leave the rest outside it.

Change-Id: I17f5b935dba8535f2bbfdd86b1037a95f2324174
Refactor OpenCL interpreter impl code to make it more modular.

Change-Id: I8fe6aeb2ee1cd67df3e0e657b271b255516dbc18
Pass group length to context / result objects to reduce # of params.

It looks cleaner this way.

Change-Id: Id46cb52863fb9366d83ac17d3f8521e5a13a59c9