Mark std.string.translate, makeTrans and unittests as @safe and pure

This pull request marks `std.string.translate` as pure and marks unittests for them as safe and pure.
I marked a unittest for `translate` for ASCII-only overload as safe, pure, and nothrow because `translate` for ASCII is marked as safe, pure, and nothrow.

Some unittests are not marked as safe or nothrow because in these cases `std.conv.to` is (currently) not safe and it is not nothrow.