Move storage independent logic
Calculate pending migrations dynamically

Use all migrations - executed migration to calculate the pending
migrations.
Add (not yet finished) up and down method