Note: A group is a set of parameters defined for a subpart of a config file
Some parts adapted from golang.org/src/pkg/json/decode.go and golang.org/src/pkg/utf8/utf8.go