WIP
implement object "attribute" (aka fields) property getters/setters on DAOs such that custom object property getter/setter functions can be applied to a DAO instance (not yet implemented, but I suspect in to be defined along-side "instanceMethods"), all attribute values ar enow stored in a "dataValues" property and transparently made available for setting and getting via object property get/set functions
add tests for getters/setters, bugfix, refactor - its WIP
remove property check in DAO.prototype.setDataValue - it is not correct and causes an infinite loop when setting a data value for a field that is as yet unset (via a property setter that has the same name as the original property)
merge sequelize@1.7.0-alpha1 - trying to keep the PR up2date
make it possible to define property getter and setter functions in a data attribute definition (by defining a "get" and/or "set" property) ... these take preference to getters/setters defined (for an attribute of the given name) in the options object - some buster tests included
bogus commit (no code changes) to force travis-ci to run again (lets hope there are no timeouts in the postgres test run this time :-/
Add model validations option

The existing but unused (as far as I could tell) DAO option `validate`
can now have member methods which will be called with the model object's
context after the other (field-specific) validations.

Only custom functions are allowed (since isInt etc wouldn't make sense
in this context).

As with other custom validations, they are deemed to pass if they throw
no error, or fail if an error is thrown.

Any error messages collected are added to a '_' member array of the
validation result object, alongside the arrays named after any fields
whose validations failed.

Example:

	var Pub = Sequelize.define('Pub', {
		name: { type: Sequelize.STRING },
		address: { type: Sequelize.STRING },
		latitude: {
			type: Sequelize.INTEGER,
			allowNull: true,
			defaultValue: null,
			validate: { min: -90, max: 90 }
		},
		longitude: {
			type: Sequelize.INTEGER,
			allowNull: true,
			defaultValue: null,
			validate: { min: -180, max: 180 }
		},
	}, {
		validate: {
			xorCoords: function() {
				if ((this.latitude === null) === (this.longitude === null)) {
					throw new Error('Require either both latitude and longitude or neither')
				}
			}
		}
	})

In this simple case an object fails validation if latitude or longitude
is given, but not both. If we try to build one with an out of range
latitude and no longitude, `raging_bullock_arms.validate()`, might
return

	{
		'latitude': ['Invalid number: latitude'],
		'_': ['Require either both latitude and longitude or neither']
	}

A test is included.
Renamed model errors key from _ to __model

As discussed on IRC. Also add task for 2.0 to change the validate()
output structure.
Merge pull request #538 from iamjochem/feature/doaGettersAndSetters

Added DOA Getters and Setters
Updating changelog and readme for getters/setters.
that's an xnor operation, not xor
remove unneccessary semicolon
Put model errors alongside field errors by validation name

Instead of a hash called __model with the model validation errors, the
model validation errors are now alongside the field validation keys of
the hash, named after the validation's key in the validate array. To be
as consistent as possible, the value is an array even though it will
only ever have one member. The structure is set to change in 2.0.

Example: where there was a model validation set up like

	validate: {
		xnor: function() {
			if (this.field1 === null) === (this.field2 === null) {
				throw new Error('require both or neither')
			}
		}
	}

and field1 and field2 have some validations, validate() might return
something like

	{
		field1: [
			'must be an email address',
			'email address must be @example.com'
		],
		xnor: ['require both or neither']
	}
move error on non-function model validation function from validate() to DAO factory

Also add a test for it
Throw an error on model validator with same name as field

Plus a test for that
Merge pull request #640 from tremby/model-validations

Add model validations option
model wide validations
Merge branch 'master' of github.com:sequelize/sequelize
v1.7.0-alpha2