Region fixes

This solves a number of issues:

* We aren't supposed to trim whitespace on setting values after they've been split on there separator. This was causing problems in some of the tests.
* Fixed a bug where we would set a setting even if we had parsed an empty string. We shouldn't set the setting to an empty string as it makes it looks like we've parsed values when we haven't as in the case of region.id (ID is needed to create a region).