Major refactoring.

Change forward migration from token stream manipulation to
AST traversal.
Add composer.lock to .gitignore.
Rework reverse migration feature.
Documentation.