treat all arguments to concat functions consistently

Currently the first argument must be of the appropriate type to avoid
surprising results, but arguments beyond the first may be of any type.
Merge pull request #1 from davidchambers/concat

treat all arguments to concat functions consistently