Custom bindings for selection expressions
Related to topic here https://groups.google.com/forum/#!topic/peewee-orm/Ny-2UE6yPvs
 Neat! Do you mind renaming `target` to `bind_to` and adding documentation on the `Node` class' api docs?
 Sounds good. Made those changes @coleifer 

Currently there is no way to have the results of a selection sub expression land on a joined instance, instead of on the top level instance. Many times a model is expected to always have a field defined, even if it was inflated via a join.

Example:

``` python
BlogEntry.select(
    BlogEntry, 
    User, 
    fn.Exists(Role.select(Role.id).where(
        Role.user == User.id,
        Role.role == 'admin'
    )).alias('is_admin').bind_to(User)
).join(User)
```

Here, we expect the `User` objects to always have `is_admin` defined, even if inflated via a join.
