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
Adding HAVING clause support to generic query generator
Added table prepend option to getWhereConditions in query generator
Added unit tests for query generator
Add new methods for and / or queries
Add test to make sure that array notation for where works
Add support for Sequelize.and / Sequelize.or
Bugfix for condition and code style issues
support for or-queries. fixes #1253
Fixed a code style issue in mysql query generator unit tests
Added Postgres and SQLite unit tests
Merge pull request #1287 from sequelize/feature/or-queries

Support for OR queries
Merge branch 'master' of github.com:sequelize/sequelize

Conflicts:
	lib/dialects/abstract/query-generator.js
Updated changelog
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