Return a promise if callback is not passed to query - Closes #1

Also, added example to README.

Kept the callback as the fast path (as it is probably the most common case) and don't even create a new deferred unless no callback is passed.