global: persistence using a database

* Using a SQLite database to store everything.
* Moving the views.
* Splitting up the cli.
* Splitting up the tasks from kwalitee.
* Adding new check: First line must not end with a dot.
* Supporting alternative signatures (not counted). E.g. `Reported-by`
* Adding PEP257 `match` and `match_dir` support.

Comments, reviews are welcome. Especially the db schema.

**Known issues:**
- ~~formats are not the same between checkers `{code} {lineno}` vs `{lineno} {code}`~~
- ~~PEP257 checks seem to be missing.~~
- ~~branch name may contain "/"~~
- ~~branch status head is correct but commits are created in the wrong order.~~
- ~~pull request `target_url` is pointing to the wrong commit.~~
- pull requests are _"meh"_
- ~~IntegrityError `tasks.py:268`.~~


**Help us testing it:**
 - add this webhook to your invenio fork: 
  - Payload URL: http://kwalitee.whut.ch/payload
  - Content Type: application/json
  - Events: *push* (and *pull request* if you really want)
 - that's it, you should see this for the first event.
```json
{
  "payload": {
    "message": "pong"
  }
}
```