Add recurring reservations.
Add recurrence database definitions and migration.

As discussed in seantis/seantis.reservation#14.
Adds a new function to the reserveration model to receive the dates it
targets.
Generate recurring reservations.
Refactoring, split Scheduler.reserve.

Move knowledge about target_type to Reservation class for better encapsulation.
Make reserve more readable by extracting helper methods.
Extract additional_data method.

I need to be able to change this behavior.
Add links to partially remove reservations.

I.e. remove reserved slots.
Make sure that context-menu does not display duplicate links.
Make sure only reserved slots for recurrences can be deleted.
Use list, not query.
Split big test into two smaller methods.
Correctly display reservations for recurring allocations.
Don't raise when default can't be set.
Preserve original stacktrace when re-raising.
Use interface when getting multi-adapters.
Fix import error.
Include pending reservations for recurring allocations.
Fix a bug where data was overwritten.
Merge remote-tracking branch 'origin/deif-recurring-reservations'

Conflicts:
	seantis/reservation/db.py
	seantis/reservation/error.py
	seantis/reservation/form.py
	seantis/reservation/models/reservation.py
	seantis/reservation/reserve.py
	seantis/reservation/templates/reservations.pt
	seantis/reservation/tests/test_db.py
	seantis/reservation/upgrades.py
	seantis/reservation/upgrades.zcml
Merge remote-tracking branch 'seantis/master'