Split models into separate files

because single models.py became unmaintainable
Update the gitignore to ignore database files