Fix foreignKey naming bugs in belongsTo(), hasMany(), and hasOne()

Rebased Pull Request #1406 on milestone/2.0.0:

I am developing a new application and was giving sequelize a try. I ran into inconsistencies in defining associations with regard to the column names in the database. I would've liked to have added test cases for these, but I didn't have the time to setup the test database servers for the test bench to use. (However, I may come back around to doing that in the future!)