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.
test bad db connection details throws error
Optional array argument of table names to skip

dropAllTables now accepts optional array argument of tables names
to skip dropping these tables

implementation for sequelize/sequelize#1270
dropAllTables now accepts an options object

If this object contains a propert called `skip` that is an array,
then all table names in this array wont be dropped
use triple equals
Merge pull request #1280 from bulkan/feature/skip_tables_dropAllTables

Optional array argument of table names to skip
Update changelog.md
Merge branch 'test_bad_db_conn_failure' of https://github.com/overlookmotel/sequelize into overlookmotel-test_bad_db_conn_failure
Better mysql error handling
Handle all cases
Remove unneeded code
Update changelog.md
Merge pull request #1282 from mickhansen/overlookmotel-test_bad_db_conn_failure

Fix for MySQL connection errors
Add error handler from getConnection to query
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