Store shares inside calendars instead of just grantees

Share objects contain the grantee and the write permission too, which we
also need.