allow specifying multiple DB hosts, and iterating through them
allow specifying multiple DB hosts, and iterating through them

if you're using multiple pgbouncers, and one goes down, this allows
more resilience

test plan:
 * set your host: to an array of entries, only one of them valid.
   Canvas should still boot and have a good db connection. For example:

development:
  adapter: postgresql
  host:
   - garbage
   - localhost

Change-Id: Ib6f274ebd7f6e3ba906b1c498f8d823cb50187a3
Reviewed-on: https://gerrit.instructure.com/77606
Tested-by: Jenkins
Reviewed-by: Simon Williams <088e16a1019277b15d58faf0541e11910eb756f6@instructure.com>
QA-Review: Jeremy Putnam <b030d6d6f199f844ec424882be473c2ab9adc93b@instructure.com>
Product-Review: Cody Cutrer <c4fe2b1d90ef8f2548c8aeabfa633434316f0305@instructure.com>

matematikk-mooc/canvas-lms,venturehive/canvas-lms,dgynn/canvas-lms,HotChalk/canvas-lms,HotChalk/canvas-lms,sfu/canvas-lms,instructure/canvas-lms,fronteerio/canvas-lms,instructure/canvas-lms,SwinburneOnline/canvas-lms,djbender/canvas-lms,instructure/canvas-lms,djbender/canvas-lms,grahamb/canvas-lms,dgynn/canvas-lms,instructure/canvas-lms,fronteerio/canvas-lms,SwinburneOnline/canvas-lms,roxolan/canvas-lms,venturehive/canvas-lms,sfu/canvas-lms,dgynn/canvas-lms,dgynn/canvas-lms,djbender/canvas-lms,roxolan/canvas-lms,grahamb/canvas-lms,instructure/canvas-lms,venturehive/canvas-lms,sfu/canvas-lms,instructure/canvas-lms,sfu/canvas-lms,SwinburneOnline/canvas-lms,instructure/canvas-lms,sfu/canvas-lms,sfu/canvas-lms,SwinburneOnline/canvas-lms,grahamb/canvas-lms,grahamb/canvas-lms,fronteerio/canvas-lms,djbender/canvas-lms,matematikk-mooc/canvas-lms,grahamb/canvas-lms,venturehive/canvas-lms,HotChalk/canvas-lms,roxolan/canvas-lms,matematikk-mooc/canvas-lms,fronteerio/canvas-lms,HotChalk/canvas-lms,sfu/canvas-lms,matematikk-mooc/canvas-lms,roxolan/canvas-lms