Add basic function and trigger migrations

Added the ability to define migrations that create, drop, and rename
both functions and triggers (since triggers need functions).  This
allows migrations to handle more of the requirements of setting up
the underlying SQL database behavior.

This version currently only provides support on postgresql.
Merge remote-tracking branch 'upstream/master' into basic_function_and_trigger_migrations
Unit tests for function and trigger migrations
pulled in upstream master changes to simplify merge/pull request
Merge branch 'master' of https://github.com/sequelize/sequelize into basic_function_and_trigger_migrations
Updated number of undone migrations for undone migration test