83 transactional queries

fixes #83, adds support for transactional queries, and using the query builder in `let` statements:

```js
db
.let('admin', function (s) {
  return s.select().from('OUser').where({name: 'admin'});
})
.let('reader', function (s) {
  return s.select().from('OUser').where({name: 'reader'})
})
.let('someEdge', function (s) {
  return s.create('edge', 'E').from('$admin').to('$reader').set({foo: 'bar'});
})
.commit(100)
.return('$someEdge')
.all()
.then(console.log.bind(console));
```