Test buf join with NULL behavior explicitly
Implement config key validation rules

This is a new implementation of core git's config key checking
rules that prevents non-alphanumeric characters (and '-') for
the top-level section and key names inside of config files.

This also validates the target section name when renaming
sections.
Test config name validation

This is @nulltoken's work to test various invalid config section
and key names and make sure we are validating properly.