Address concerns about elegance/readability of split on config.

In the process found an error in the prefix config code exercisable
when there are successive prefixes in a config map, such as
"db1" and "db2". Added a unittest for that case.

Also, discovered we were always re-gossiping config data on every
write because we weren't paying attention to a "real" dirty bit--
we were always copying the struct in the ranged for loop and so
never setting the dirty bit to false after gossiping.