Remove callback from transaction API in favor of promises

This PR standardises the transaction API by removing the old callback implementation and using the promise returned by the *transaction* function.

This change fixes the [issue](https://github.com/sequelize/sequelize/issues/1218#issuecomment-42535985) where the callback was not following the standard Node pattern, as well as removes ambiguity as to what API to use. (Promises all the way :+1:)

This is a breaking change for anyone that was using the old callback API so I understand if you're reluctant to merge. Any thoughts?
This should not be needed for a promise only solution. It was only there to retrow on catch if not using callbacks.