Support read-only access to repositories

Regarding the repository.Repository struct:

* `Repository.Users`: users that with write access
* `Repository.ReadOnlyUsers`: users with read-only access

Implementation notes:

* When creating a new repository specify which users should be
  allowed read access
* Allow specifying if read-only access when adding user to repo
* When removing user from repo, remove from both write and read
collections of users

Please review, comment, suggest and advise! :wink: 
I thought about that too but decided to go exactly the contrary way: the `repository` being agnostic as per:
> *“I'm a repository. Concerning my users, I just manage two collections, `Users` and `ReadOnlyUsers`, with read/write and read-only accesses respectively. These are the methods to operate on each of them, separately: `GrantAccess`, `RevokeAccess`, `GrantReadOnlyAccess` and `RevokeReadOnlyAccess`”*.