Refactor buildRegion to simplify building from different regionConfig types

Reopening (originally #1602) against v2.1 per @samccone's request in gitter. This fixes #1562.