consolidated data models into models.py

The data-related parts of Challenge have been moved into the models.py
file, and challenges/base.py has been replaced with challenges/common.py,
which contains DCPU-specific helper code.

Also, a version field has been added to Challenge to help sort out content
changes in the future.