support multiple warden configuration blocks

Changes the behavior of `Devise.warden` such that calling it multiple
times with different blocks will result in a call to each block on
`Devise.configure_warden!` rather than "last block wins". This is
especially used for plugins that wish to extend warden functionality
without clobbering base app configuration or vice versa.
Merge pull request #2978 from rossta/support_for_multiple_warden_config_blocks

Support multiple warden configuration blocks