Refactor buildRegion to simplify building from different regionConfig types

Reopening (originally #1602) against v2.1 per @samccone's request in gitter. This fixes #1562.
@thejameskyle Not a bad idea since we already use a helper for throwing errors.