find a string based primaryKey called id
fixed test
test update
Allows us to define our own timestamp columns.

This commit allows the user to predefine their own timestamp columns which is
useful for databases that already exist. This also allows the user to have their
own naming conventions for the timestamp columns.

The following options have been added when defining a new table:

* createdAt (defaults to "createdAt")
* updatedAt (defaults to "updatedAt")
* deletedAt (defaults to "deletedAt")
* touchedAt (defaults to "touchedAt")

Note: The underscored option still remains useful since it's just a simple one
line option which allows flexibility for those rare cases in which people decide
to change the structure of their database from camelCase to under_score or
vice-versa.
Enum values can now be null

If the column allows null values, the validation for that column will be skipped
if the vale is null.

Closes https://github.com/sequelize/sequelize/issues/839
Merge pull request #857 from durango/enum-null

Enum values can now be null
Merge branch 'master' of https://github.com/whito/sequelize into whito-master
Merge pull request #856 from durango/specific-timestamps

Allows us to define our own timestamp columns.
Updated changelog.
Merge branch 'master' of github.com:sequelize/sequelize
find with strings
Fixes PostgresSQL connection problems.

This commit fixes the following connection problems:
* Pools should now properly release themselves always
* You can now set a "TestOnBorrow"-like functionality with
  config.pool.reapInterval).
* Heroku should be able to properly send the correct DB credentials.
Postgres single connections will no longer leak

Some users were experiencing problems with Postgres connections leaking when
they didn't enable pooling. This commit should fix the problem.

- In prototype.disconnect() we now properly call this.client.end with
  this.client.end.bind(this.client) (as shown in the node-postgres wiki).
- We no longer check for readyForQuery on this.client as that value may not
  always be populated by node-postgres (possibly a bug on node-postgres).

This should close https://github.com/sequelize/sequelize/issues/859
ENUM types will no longer in Postgres

Postgres will now add enum's values on .sync() if you were to add
entires into the attribute's.value. It'll also add the enum type in
the proper order. For example:

```js
Table = sequelize.define...
  mood: {
    type: DataTypes.ENUM,
    values: ['happy', 'sad']
  }

// For some reason down the road you redefine the same table
// ...
  mood: {
    type: DataTypes.ENUM,
    values: ['neutral', 'happy', 'sad', 'joyful']
  }
```

Will result in the following SQL:

```sql
ALTER TYPE "...enumTypeName..." ADD VALUE 'neutral' BEFORE 'happy';
ALTER TYPE "...enumTypeName..." ADD VALUE 'jouful' AFTER 'sad';
```

- ```.drop()``` will now pass the options object through (optional)
- Added Postgres.QueryGenerator.pgListEnums(tableName=null,
   attrName=null, options) which lists all of the ENUM types for
   Postgres, if you don't specify an attribute and tablename then
   Sequelize will list all of the Enums
- Added Postgres.QueryGenerator.pgEnumAdd(tableName, attr, value,
   options) which will alter the enum type and add values
- Added Postgres.QueryGenerator.pgEnumDrop(tableName, attr) which
   will drop the enum type
- Postgres.QueryGenerator.pgEnum() will no longer try to drop the
   type unless {force: true} within the ```.sync()``` commands
- Refactored ```QueryInterface.createTable()``` in order to allow
   Postgres to create enum types explicitly rather than from
   Postgres.```QueryGenerator.createTable()```
- Refactored QueryInterface.dropTable() -- same as ```createTable()```
   changes .. also {force: true/force} will now set options.cascade
- QueryInterface.dropAllTables() will now correctly add a quote
   identifier to table names for MySQL

Closes https://github.com/sequelize/sequelize/issues/546
Forgot to check for DAOFactoryManager in DAOFactoryManager.drop() for the dialect when declaring tableName.
Junction table now has correct types when using non-'id' primary keys with non-integer types
Join columns now have correct default type based upon association PK type
Default was integer, which led to casting errors returning the incorrect data
Non-'id' primary key include support - MySQL
Plus cleaning up many-many join to be more understandable
Association columns type tests
Non-id primary key eager loading tests