Sqlite closure calls cannot reference each other
Anyone? I've been digging on this for a while myself now, but there is so much abstraction it's hard to figure out how to properly fix this. Looking at this now, sorry for the delays! Fixed -- Peewee was trying to be too clever by resolving the JOIN-ed closure table to a model instance and patching it to the place it was joined (the source table's primary key).
When you do a call to `descendants` or `ancestors` the returned model holds an id value that that is the Closure model, this makes it impossible to use this data in followup queries.

Here's some code that illustrates the problem:

```
from peewee import *
from playhouse.apsw_ext import *
from playhouse.sqlite_ext import ClosureTable

db = APSWDatabase(':memory:')
db.load_extension("../env/lib/closure.so")

class Symbol(Model):
    
    parent = ForeignKeyField('self', index=True, null=True)
    name = CharField()
    
    class Meta:
        database = db
        only_save_dirty = True
        
SymbolClosure = ClosureTable(Symbol)

db.create_tables([Symbol, SymbolClosure], True)

symbol1 = Symbol.create(name="create_symbol_inherited_root")
symbol2 = Symbol.create(name="create_symbol_inherited_root", parent=symbol1.id)
symbol3 = Symbol.create(name="create_symbol_inherited_root", parent=symbol2.id)

child1 = SymbolClosure.descendants(symbol1,1).first()
print child1.id

child2 = SymbolClosure.descendants(child1,1).first()
print child2.id
```

The resulting output:

```
<peewee.SymbolClosure object at 0x7f85299a7990>
Traceback (most recent call last):
  File "repro.py", line 28, in <module>
    child2 = SymbolClosure.descendants(child1,1).first()
  File "/home/nathan/Projects/codeintel/env/lib/python2.7/site-packages/peewee.py", line 3114, in first
    return self.peek(n=n)
  File "/home/nathan/Projects/codeintel/env/lib/python2.7/site-packages/peewee.py", line 3104, in peek
    res = self.execute()
  File "/home/nathan/Projects/codeintel/env/lib/python2.7/site-packages/peewee.py", line 3149, in execute
    self._qr = ResultWrapper(model_class, self._execute(), query_meta)
  File "/home/nathan/Projects/codeintel/env/lib/python2.7/site-packages/peewee.py", line 2833, in _execute
    return self.database.execute_sql(sql, params, self.require_commit)
  File "/home/nathan/Projects/codeintel/env/lib/python2.7/site-packages/playhouse/apsw_ext.py", line 116, in execute_sql
    self._execute_sql(cursor, sql, params)
  File "/home/nathan/Projects/codeintel/env/lib/python2.7/site-packages/playhouse/apsw_ext.py", line 109, in _execute_sql
    cursor.execute(sql, params or ())
TypeError: Bad binding argument type supplied - argument #1: type SymbolClosure
```

Note the first print (of `child.id`) is returning an instance of `peewee.SymbolClosure` rather than the actual id. This is the root of the problem.