Adds sequelize.literal() and sequelize.cast()

sequelize.literal() will tell Sequelize to not escape whatever you type
into the argument, for example:

sequelize.literal('1-2') will result in "1-2" unescaped.

sequelize.cast(input, type) will cast input into type, for example:

sequelize.cast('1-2', 'integer') will result in:

```CAST('1-2' AS INTEGER)```
Make it posible for success callbacks to emit two args to done
Added daoFactory.findOrInitialize(params, defaults)

This functionality acts pretty much the same way as
daoFactory.findOrCreate except you don't actually create the record,
Sequelize would only .build() it. beforeValidate/afterValidate hooks
will still run in the same manner as findOrCreate().

This functionality was inspired by:
http://guides.rubyonrails.org/active_record_querying.html#find-or-initialize-by
Added daoFactory.findOrBuild() as an alias for findOrInitialize()
removed disable foreign key constraint query
tickity tick
allow partially proxying emitters
formatting
ticks
queries for getting and dropping foreign keys
disable foreign keys for sqlite before dropping all tables
evaluate foreign key queries
renamed keys to events
semicolon!
treat sqlite
Fix for Issue #984 ([postgres] Eager loading when using 'include' statement fails when specifying 'schemaName.tableName')
Fix "Cannot call method 'toLowerCase' of undefined" error

sequelize/lib/dao.js:139
ap(function(d) { return d.toLowerCase() }).indexOf(values[attrName].toLowerCas
                                                                    ^
TypeError: Cannot call method 'toLowerCase' of undefined
Fix for eager loading of parent data in many to one relationship; where the parent has a primary key specified.
Added test for eager loading parent data in many to one relationship
Fix for SQLite; have to use INTEGER instead of INTEGER(11) for auto increment fields