Fix out of order execution issue

When +[INTULocationManager locationServicesAvailable] returns NO, location requests are immediately completed when added since there is no point in adding them to the open list of requests.

There was an unexpected side effect of this, where the completion block for the request would execute before the requestLocationWithDesiredAccuracy: method returned with the request ID.

This fix adds a dispatch_async call so that the completion block of any request will never execute before the requestLocationWithDesiredAccuracy: method returns.