Add database queue method to run blocks asynchronously

I find myself using a pattern like this to prevent the database
blocking my main thread:

```obj-c
FCModelDatabaseQueue *databaseQueue = …
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT
, 0), ^{
    [databaseQueue inDatabase:^(FMDatabase *database) {
        // queries & updates

      [[NSOperationQueue mainQueue] addOperationWithBlock:^{
          // update the UI
      }];
    }];
});
```

This is a little wasteful though, the global queue's worker thread is
now blocked waiting for the database queue's worker thread to return
control.

With an async method to `FCModelDatabaseQueue` the same example looks
like this:

```obj-c
    FCModelDatabaseQueue *databaseQueue = …
    [databaseQueue inDatabaseAsync:^(FMDatabase *database) {
        // queries & updates

        [[NSOperationQueue mainQueue] addOperationWithBlock:^{
            // update the UI
        }];
    }];
```