Content requester permission needed to raise content change requests

Note: this isn't ready to be merged.

This PR includes:
- [x] a refactoring to extract a common Request class (8f5a2d9)
* [ ] introducing roles and permissions