fmmtl::direct, KernelTraits reworking, and fmmtl::random_n