reworked with-a-database macro

 * quote *connection-settings* in the macro, so that we evaluate it at
   runtime rather than compile time
 * macro just lambdas the body and calls a function, rather than
   having the whole thing in the macro
 * rebind *connection-settings* to the current connection settings
migrations is now a method (so I can have :around) and
migrate/migrations now returns the number of statements executed