Refactor buildRegion to simplify building from different regionConfig types

Reopening (originally #1602) against v2.1 per @samccone's request in gitter. This fixes #1562.
Should we document `buildRegion` too or just document these configuration types in `Application` and `LayoutView`?