model/notification: Extracted events table

The notification table had a lot of duplicated data before. It makes more
sense to have a list of things that happened (events) and a separate
list of notifications about these things and their status (read/not read).
model/notification: Added "Type" subclass
controllers/notifications: Removed unnecessary join
controllers/notifications: Use inner join where appropriate
model/notification: Use inner join where appropriate
controllers/notifications: Use string-based join()
controllers/notifications: Removed unnecessary Query.all() call

The query is iterable directly.
model: Replaced deprecated relation() by relationship()
model/club: Moved relationships next to the foreign keys
controllers/clubs: Fixed pilots ordering
model/tracking: Removed unnecessary primaryjoin parameter
model/club: Import cleanup
model/tracking: Removed unnecessary ForeignKey use_alter parameters

There is no circular dependency here that would justify the use
of use_alter=True.
model: Added proper ON DELETE actions to foreign key columns
model/traces: Added missing ON DELETE constraint to database
model: Removed unnecessary cascade parameters

The Postgres database will take care of cascading deletion through the
ON DELETE handlers. There is no need for SQLAlchemy to interfere.
Merge pull request #42 from Turbo87/relationships

Model relationship improvements
Merge branch 'master' into notifications

Conflicts:
	skylines/model/notification.py
model/notification: Fixed broken type constants
model/notification: Moved count_unread_notifications() into Notification