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 
throwing is fine imo. Being explicit about where users go wrong is never bad.