Track page views

Tracks viewing of confidential or privileged information, and adds it to the feed of database changes.

Requires config:
```
[[tracking]]
page_viewed = "Page Viewed"
```
This early return is unreliable since you can easily have a situation where we show a form with a message.  Most notably, if you search for an attendee and they're the only search result, we redirect you to their form with the message "This attendee was the only search result."  This if-statement would deliberately not log the pageview in that case, which is definitely not desirable.

It's probably good enough to just say, "Log this page if one of the attributes is ``id``".  The easiest and most robust way to accomplish this would be to use the ``parse_qsl`` function in the standard library (https://docs.python.org/3/library/urllib.parse.html#urllib.parse.parse_qsl) which returns a list of tuples, and then just make that a dict:

```python
>>> from urllib.parse import parse_qsl
>>> d = dict(parse_qsl('id=foo&message=bar'))
>>> d
{'message': 'bar', 'id': 'foo'}
```

So then you could just say something like

```python
params = dict(parse_qsl(query))
if 'id' not in params or params['id'] == 'None':
    return
```

which is a lot safer.