std.array.join GC optimisation

I doubt that creating unsafe trusted functions at module scope is a good idea. In fact, I personally think it's an awful one. If I now read the std.array source code, I have to audit the whole module for possibly illegal uses of it. If you need it in two places, make two (probably static, to avoid allocating a closure) nested helper functions. Also helps to save on template instantiations, although that's hardly significant.