Access Control: define "Membership" type (#592).

Access Control API

2 new methods:
{{{
void createMembership(String username, long workspaceId)
boolean isMember(String username, long workspaceId)
}}}

BREAKING CHANGES

Each topic/association must be assigned to at maximum *one* workspace.
This applies in particular to "Username" topics.

The "Membership" semantics (that is: a user is a member of one or more workspaces) is now expressed explicitly by means of a "Membership" association (between the "Username" topic and the workspace).

Access Control API

2 methods dropped:
{{{
void joinWorkspace(String username, long workspaceId)
void joinWorkspace(Topic  username, long workspaceId)
}}}
Use `createMembership()` instead (see above).

Workspaces API

1 method changed:
{{{
List<RelatedTopic> getAssignedWorkspaces(DeepaMehtaObject object)
-->          Topic getAssignedWorkspace(DeepaMehtaObject object)
}}}

See #592.