Content view register

Finaly!

Should implement #691
Overriding `path`, as shown above, guards against certain user errors. For example, are both of these correct?

```python
ContentView().publish()
ContentView(id=42).publish()
```

Calling `self.path(which='this')` or `self.path(which='all')` helps to guard against such user errors.