Make VisitIndexArg insert a function ptr instead of a function signature.

VisualStudio is unable to extract nested function signatures that are embedded
inside a template signature, instead if we used function pointer signatures
everything is parsed properly.
Remove cont and exec signatures from class template parameters.

Passing the cont and exec signature as class template parameters caused
compile issue on VS2010/2012 once the class signature was passed through
nvcc c++ pre-processor. The solution is to hide the types inside a class,
and use that class as a template parameter instead.