Refactor buildRegion to simplify building from different regionConfig types

Reopening (originally #1602) against v2.1 per @samccone's request in gitter. This fixes #1562.
options.el !== undefined

someone might do something like

$(".foo")[0]

and not know their selector failed and since an array is truthy we would be letting people dig themselves a holllle