Added Q promises support for the whole API.

The main idea is that if you don't provide the callback parameter in any call to the API, then a promise is returned.

So you can do things like this:
```
return Person.create({name: "John", lastname: "Smithhhh"})
.then(function(person) {
   person.lastname="Smith";
   return person.save();
}).then(function () {
   console.log("Last name changed");
}).fail(function(err) {
   console.log(err);
});
```

This modification maintains compatibility with old code and let start using promises in new code.

For the ChainFind, only the run  and the count returns a promise if no callback is provided.