Created 4 of the translation unit and unrolled functors are scattered across them.

Created 4 of the translation unit for static string and unrolled functors are scattered across them.
Also:
- Increased the count of unrolling of functors from 25 to 40
- Optimized sorting on device for strings with size equal with the size of fundamental integer types (1/2/4/8 bytes), by reinterpret_cast to them, what is using optimized radix_sort
- Added hint to the nvcc compiler to unroll the loop in the comparison operator of static strings, which is important for perfomance GPU-pipelines
- Added doxygen-style comments in strings.h
- For non-unrolled functors, in the else-branches, use a functor operator()
- Removed dependency on cm.h

and other minor changes