use scan to allocate memory once for all threads in block

- also remove __forceinline__ as it causes perf drop. (~10% perf)
- use default block size of 256 (~10% perf improvement over 128)
- current performance: ~9.4 Billion moves per second in best case on GTX
Titan