Support several columns for unique indices.

You can now declare unique indices like so:

var User = sequelize.define('User', {
	username: {
		type: DataTypes.STRING,
		unique: {
			name: 'username_and_email',
			msg: 'Your username and email must be unique!'
		}
	},
	email: {
		type: DataTypes.STRING,
		unique: 'username_and_email'
	},
	aCol: {
		type: DataTypes.STRING,
		unique: true
	}
})

Will create two unique indices one for username/email combo and the
other for aCol. If a unique constraint occurs for aCol, the old behavior
still occurs (emits a dialect returned error), but for username/email
index the returned error would be, "Your username and email must be
unique!"
Merge branch 'master' into newindex

Conflicts:
	lib/dialects/sqlite/query-generator.js
Fixed tests.
Fixed hashToWhereConditions and arrayValue in QueryGenerator to correctly handle in: and not: in where: conditions (fixes #1079)
fixed abstract arrayValue to take factory parameter
Merge pull request #1286 from OtaK/master

Adding HAVING clause support to generic query generator
Test for find and findAll
Fix optClone for Sequelize.and / Sequelize.or
Affected rows
forgot to add the query-types files
Fix affected rows on delete for sqlite
Merge pull request #1293 from janmeier/affectedRows

Affected rows
Update changelog.md
Fix for connection errors when using replication
Fix for mariadb as well
Update package.json with newest mariadb version
Merge pull request #1298 from janmeier/badPooling

Fix for connection errors when using replication
I am too quick at copy pasta!

thanks to @KevinMartin
Rebase and Merge pull request #1024 from durango/newindex
Merge branch 'master' of github.com:sequelize/sequelize