Added case to typeof_global for None global value

Sometimes (for large functions), `None` uses the `LOAD_GLOBAL` instruction instead of the `LOAD_CONST` instruction, as Numba currently assumes.  This change will catch the case that `None` is loaded as a global var.
Add a gridsize() CUDA helper function to compute blockDim * gridDim for loop strides.

Analogous to the grid() function used to compute global thread offsets.
Support for capturing variables from enclosing, non-global scopes when JIT compiling a function.
Fix lacking for np.record argument (#441);
to_native_arg() now returns a tuple of value and a callback that generates the cleanup.
Fix slow down due to BasicBlock.instructions (#426)
Add tests for #441
Merge branch 'closure' of https://github.com/seibert/numba into pr450
Generate unique names for each function for support of closures and dynamically generated functions
Support dynamically generate function (#451)
Better disambiguate nested functions and dynamically-generated functions
Eliminating special case for python2.6
Merge pull request #457 from pitrou/qualname-disambiguate

Slightly improve the qualified name disambiguation logic
Remove unused _function_cache
Slightly augment cffi tests, and add comment about possibly unused code
Small cleanup of FunctionDescriptor
Always index Overloaded.overloads with a tuple of arg types, rather than allow equality comparisons between Signature and tuple
Add support for atomic addition on float32 values in CUDA Python.
Fixes regression with ExternalFunctionDescriptor
Fix atomic tests to use correct device functions
Add documentation for cuda.atomic.add.