Changes to how sequelize.literal and cousins is escaped

This uses a modified version of the test from #1910, and closes #1875, #1915 and #1556 
What do we do currently? I mean throw should be the same as reject inside a promise right?