Split models.py into separate Python modules

Part 1 of several :)

Split `models.py` into `models/peer.py` and `models/base.py` (self assessment doesn't have any models).
Cleaned up some pylint errors.