Add savepoint support for postgres transactions

This PR allows the developer to use nested transactions by levering PostgreSQL `SAVEPOINT` feature.

Example using generators:

```javascript
sequelize.transaction(function(t1) {
  // `START TRANSACTION` was emitted.

  sequelize.transaction({ transaction: t1 }, function(t2) {
    // `SAVEPOINT <t1.id>` was emitted.

    t2.rollback();

    // `ROLLBACK TO SAVEPOINT <t1.id>` was emitted.
  });
})
```