Utils::transform: Add missing overloads, simplify implementation

Use a helper class so that the actual implementation is shared and
introduce a helper class for treating QStringList and other qt
containers in the same way.

There are now 2² overloads, because:
- member function pointer vs everything else
- same container type, different container types

Change-Id: I343ca7d4e0007f7146b2e646c436c22174e27779
Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>