Make database creation for SQL Server more resilient to failures

Issue #985. The change here is to call the equivalent of Exists always immediately after creating the database. If this fails with one of the "transient" errors that we have encountered, then sleep for a bit and retry the exists check. Repeat until it passes or until we've waited so long we just give up.

Also made a similar change in the test code used to create databases since it doesn't use the EF mechanisms.

Currently executing a squence of Migrations operations to create a database will not use this mechanism--will file a bug on this.
I don't think this adds value since they are used in one place and the meaning is entirely clear from the context.