Support for attributes with the same field name as attribute name

Should close https://github.com/sequelize/sequelize/issues/2348 + a bit of other issues I discovered along the way. Most of the issues stemmed from deleting the attribute, which does not work if the field and the original attribute has the same name