Specialize patcher structs inside K3 namespace.

GCC is strict about template specializations taking place inside the
namespace where the original template was declared. Clang apparently
doesn't care.
Fix ambiguous collection constructors.

GCC bails when trying to resolve overloads between copy-constructors and
super-class constructors. In this case they're both the same, so it
shouldn't matter.