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 
Mentioned here that you can use [] to rename an attribute