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 the `repository` package should encapulate the `readonly` logic and the api should repass if the grant is full or readonly:

    readonly := r.URL.Query().Get("readonly") == "true"
    repository.GrantAccess(repositories, users, readonly)