various fixes

This is basically the subset of backward-compatible changes of [PC 34](https://github.com/mbi/django-simple-captcha/pull/34). On my environments, all the tests are passing (notice that I had to amend the test of `testInvalidOutputFormat`).

* add a base class for captcha widgets to allow easier extensions
* catch `CaptchaStore.DoesNotExist` instead of the broad `Exception` in `CaptchaField.clean()`
* use `[]` and `{}` instead of `list()` and `dict()` [[1]](http://stackoverflow.com/questions/6610606/dict-literal-vs-dict-constructor-any-preferred)
* check `output_format` and `reverse('captcha-image', args=('dummy',))` only in `DEBUG` mode
* use `ugettext` instead of `ugettext_lazy` in `fields.py`