upgrader: add auto-generation of upgrades
- Adds auto-generation of upgrades via Alembic.
- Adds dependency on Alembic to perform database schema operations.
- Refactors code structure by splitting engine module into separate modules.
Signed-off-by: Lars Holm Nielsen <lars.holm.nielsen@cern.ch>
NOTE: beware, patch amended by Tibor to use new file names