Performance

I've removed all the reflection warnings, and also stopped using &rest args in the decoding functions, since that is substantially slower than having three fixed-arity function bodies and these functions should be performance-sensitive.

This has led to a dramatic speedup when using a custom key-fn, but otherwise things seem to perform just fine. I presume this means the cases that were actually causing reflection are not tested in the benchmarks, and I couldn't figure out how to generate reflective code in the benchmarks, but there ought to be *some* code somewhere that's been sped up dramatically by removing the reflection.