Adds per-user progress state into db and update at the completion of each level.
Also adds an unstyled list to the progress page showing this information.
Includes some minor refactoring of the DecryptHandler into the main.py
file to make it cleaner to use shared base clases. Progress on issue #4