Refactor offers

This is my offer refactoring according to the revised plan in #1398. It builds on the so far unmerged changes from #1392. It is not ready for merge into oscar because all conditions and all but one benefit are ripped out. It can serve as a starting point to implement the missing condition and benefit types on the refactored base code.

Some commits however can probably be merged into master:
* c7a54e0
* f53d1fa
* be20ee5
* b1ecd3e
* e8f7b1d