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.
1.7.0-rc2
tests for transaction manager
keep the original pooling config for transactions. fixes #1262
Merge pull request #1267 from sequelize/hotfix/transaction-pooling-config

Hotfix/transaction pooling config
add sum() finder functionality to DAOFactory
create sum() finder example
add tests
oops. fix the sum fn
Merge pull request #1271 from schonfeld/add-sum-decorator

Sum() Finder Functionality
npm ignore coverage directories

There's currently a `coverage-sqlite` folder in the release on npm.
Merge pull request #1274 from bencevans/patch-1

npm ignore coverage directories
Update to node-mysql 2.0.1. Fix for #1226
allow setImmediate and clearImmediate as globals
rework setImmediate
Implement .spread in custom event emitter
Pesky semicolons
Merge pull request #1277 from janmeier/promiseSpread

Implement .spread in custom event emitter