Cuda or C++ compilation broken by Nim inlining macro
Commit: https://github.com/mratsim/Arraymancer/commit/3e0212df5595a71929ff84fae113fb073b1601a6

```bash
tmpxft_00000443_00000000-4_arraymancer_all_tests_cuda.cudafe1.cpp:(.text+0x93): undefined reference to `isObjSlowPath_k9bdq9bQE075AR7scLFt5wIg(TNimType*, TNimType*, TNimType**)'
nimcache/arraymancer_all_tests_cuda.o: In function `nimFrame(TFrame*)':
tmpxft_00000443_00000000-4_arraymancer_all_tests_cuda.cudafe1.cpp:(.text+0x118): undefined reference to `stackOverflow_II46IjNZztN9bmbxUD8dt8g()'
nimcache/arraymancer_all_tests_cuda.o: In function `suiteStarted_GgW0QiD89cMFXShyPQ8t8qg(tyObject_OutputFormattercolonObjectType__dLGU9cWWYqlqOn8lpRVsx9cw*, NimStringDesc*)':

...
...
...
thousands of lines
...
...
...
nimcache/nimcuda_cusolver_common.o:tmpxft_00000694_00000000-4_nimcuda_cusolver_common.cudafe1.cpp:(.text+0x8d): more undefined references to `stackOverflow_II46IjNZztN9bmbxUD8dt8g()' follow
nimcache/stdlib_unittest.o: In function `suiteEnded_8zybqvexf9aYkm9bmgyU3eLg_2':
stdlib_unittest.c:(.text+0x332a): undefined reference to `suiteEnded_K2O75e2roACICAuYiNImyw'
nimcache/stdlib_unittest.o: In function `testEnded_xoIS1BdhYWQ6hhMP22XXiw':
stdlib_unittest.c:(.text+0x3502): undefined reference to `testEnded_azSnnJ3hAiHHuUdLzViJlw'
collect2: error: ld returned 1 exit status
Error: execution of an external program failed: '/opt/cuda/bin/nvcc   -o /home/ml/programming/Arraymancer/./bin/all_tests_cuda  nimcache/arraymancer_all_tests_cuda.o nimcache/stdlib_system.o nimcache/arraymancer_arraymancer.o nimcache/arraymancer_test_operators_blas_cuda.o nimcache/arraymancer_test_accessors_slicer_cuda.o nimcache/arraymancer_test_shapeshifting_cuda.o nimcache/stdlib_sequtils.o nimcache/stdlib_strutils.o nimcache/stdlib_future.o nimcache/stdlib_algorithm.o nimcache/nimblas_nimblas.o nimcache/stdlib_math.o nimcache/stdlib_typetraits.o nimcache/stdlib_macros.o nimcache/stdlib_random.o nimcache/stdlib_parseutils.o nimcache/stdlib_times.o nimcache/nimcuda_cuda_runtime_api.o nimcache/nimcuda_vector_types.o nimcache/nimcuda_driver_types.o nimcache/nimcuda_surface_types.o nimcache/nimcuda_texture_types.o nimcache/nimcuda_cublas_api.o nimcache/nimcuda_library_types.o nimcache/nimcuda_cuComplex.o nimcache/nimcuda_cublas_v2.o nimcache/nimcuda_nimcuda.o nimcache/nimcuda_cuda_occupancy.o nimcache/nimcuda_cudnn.o nimcache/nimcuda_cufft.o nimcache/nimcuda_curand.o nimcache/nimcuda_cusolver_common.o nimcache/nimcuda_cusolverDn.o nimcache/nimcuda_cusolverRf.o nimcache/nimcuda_cusolverSp.o nimcache/nimcuda_cusparse.o nimcache/nimcuda_nvblas.o nimcache/nimcuda_nvgraph.o nimcache/stdlib_unittest.o nimcache/stdlib_streams.o nimcache/stdlib_sets.o nimcache/stdlib_hashes.o nimcache/stdlib_os.o nimcache/stdlib_posix.o nimcache/stdlib_ospaths.o nimcache/stdlib_terminal.o nimcache/stdlib_termios.o  -lm -lrt   -ldl'
       Tip: 4 messages have been suppressed, use --verbose to show them.
     Error: Execution failed with exit code 1
        ... Command: "/home/ml/.nimble/bin/nim" cpp --noNimblePath --path:"/home/ml/.nimble/pkgs/nimblas-0.2.0" --path:"/home/ml/.nimble/pkgs/nimcuda-0.1.4" "--define:cuda" "--cc:gcc" "--gcc.cpp.linkerexe:/opt/cuda/bin/nvcc" "--gcc.linkerexe:/opt/cuda/bin/nvcc" "--out:./bin/all_tests_cuda" "--gcc.cpp.exe:/opt/cuda/bin/nvcc" "--run" "--cincludes:/opt/cuda/include" "--gcc.exe:/opt/cuda/bin/nvcc" "--gcc.cpp.options.always:-arch=sm_61 --x cu -Xcompiler -fpermissive" "--gcc.options.always:-arch=sm_61 --x cu" "--nimcache:"nimcache""  "tests/all_tests_cuda.nim"
```