Add tests for new models and banner creation process.

Also fixes issues with existing tests:
- Jenkins runs Python 2.6, which doesn't support using assert_raises as
  a context manager, so we use Django's version on TestCase, which uses
  the version from unittest2, which does support it.
- Set BannerFactory to be an abstract factory.