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 think that should be only one method to revoke access. And this method should revoke full and read only access.