groups: port missing functionality

* Implement user group manage function

* Add filter on list of group that user can join.

Signed-off-by: Leonardo Rossi <leonardo.r@cern.ch>
You could prepare custom exceptions in `invenio.modules.accounts.errors` and write translatable message in `flash` on line https://github.com/inveniosoftware/invenio/pull/2458/files#diff-4964802c26e58ed2d09b42e9224210cfR111