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.
Merge branch 'mix-migrations' of github.com:christhekeele/ecto into christhekeele-mix-migrations
Still pass strategies as options