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