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