Rewrite Ecto.Migrator to accept different directions and strategies.

Exposes new task `ecto.rollback` for reverting migrations, and
adds options `--all`, `--step n`, and `--to version` to both
`ecto.rollback` and `ecto.migrate`.

Deprecates calls to Migrator.run_all, which will for now warn, delegate to
Migrator.run, and behave identically to the old implementation.
Purge migrations between runs in integration tests.
Cleans up private Migrator API.

- Direction is an explicit parameter
- Defaults are now handled by function clauses
- Allows non-strategy options to be consumed
- Deprecation warning removed
- Docs follow conventions
- 'strategies' vs 'strategy_types' no longer conflated
Require direction to be specified in Migrator.run/4.
Move strategy selection out of Migrator and into related tasks.
Make mix migration tasks responsible for furnishing defaults to Migrator.
Ignore Scheme in database URI
Update after feedback for ignoring schemes in URL
Support non-integer belongs_to foreign_key type
Ignore Scheme URI: update error message, remove useless comment
Merge pull request #138 from Enders/ignore_scheme

Ignore Scheme in database URI
Merge branch 'mix-migrations' of github.com:christhekeele/ecto into christhekeele-mix-migrations
Still pass strategies as options
Add a CHANGELOG
Quote all table and field names in Postgre Adapter generated SQL
Quote columns/tables: introduce quote_column and quote_table
Quote tables/name - fix rebase mistake
Merge pull request #139 from Enders/quote_names

Quote all table and field names in Postgre Adapter generated SQL
parse_streategy is not longer required
Added :foreign_key_type option to @queryable_defaults

The :forgein_key_type option allows users to set the default type
for any belongs_to association foreign keys.