Add `keywords` and `extra_keywords` fields to `issue` class. Add new `keyword` class.

Note: while `keywords` field of `issue` is a `MultiLink()` to
`keyword` class, the `extra_keywords` field is actually used only to
allow creation of new keywords whenever an issue is updated.

A new auditor will read the `extra_keywords` field, split it using
commas as sperator, and for each word:

* will create a new keyword if it does not exist yet,
* will add the keyword to the `keywords` field

It will then empties the `extra_keywords` field, so that it will
always appera empty on the web interface.

The detector also has a "undocumented" feature: if a keyword begins
with `-`, it will be *removed* from the `keywords` field (if present).

Fixes issue270