Restructured the DB-Model for Groups.

The initial refactoring of the Groups and their relationship to the Users.
Instead of storing a group-ID as interger-field, now the hibernate
mechanism of a many-to-many relationship is used to model the user-groups and
their corresponding users.
In this commit the database structure (models) is adapted and the broken
direct dependecies are fixed.
The DB-init-script is also modified. The anonymousUser is now added to the
default-group.
Restored group-related functionality in getUserByName.

The possibility to filter the queried users by a given group is now
adapted to the newly created group-user relationship.
Whitespace and organize imports.
Refactored the isSuperAdmin method.

Improved the detection whether the logged-in user is a SuperAdmin or not,
due to the newly created group-user relationship.
API-Docs, non-functional change.
Removed comments, whitespace changes.
Refactored the updateUserPassword method.

Removed the filter by a group while getting the user who should receive a
new password. This is now obsolete due to the changed group-user relationship.
Also did some cleanup.
Simplified the getUserByName-API-call in createUsers.

Since there is an API-method for getting a user by its name from database
without providing a group-ID, this one will be used now.
New annotation to set access-restrictions on Hibernate-models.

Introduced an annotation to restrict the access of Hibernate model
instances, which represent database tables. The annotation can be set on
the class itself and should be parameterized with a value offered by the
enum RestrictionType, e.g. 'GROUP' to allow only group-related access.
A parser for accessing the annotation and its parameter during runtime is
also implemented.
Remove automatic group-detection from DB-DAO.

The mechanism of the automatic detection of group-dependency for a model
within the DB-DAO is now removed. As other security mechanisms are done at
service-level, filtering/restrictions by groups should be done at
service-level as well.
Therefore some extensions of the DB-DAO will be needed in the future to
pass custom Hibernate Restrictions and Criterions to certain API-methods.
As a show-case of the strategy a new getUserByName method was implemented
accepting custom Criterion/Restriction.
The broken API-calls, due to the changed API-methods of the DB-DAO are
fixed as well in this commit.
Removed typo in API-Doc.
Refactored the web-interface for group-creation.

Restructured the web-interface for the creation of a group entity.
Multiple entity-creation is replaced by single creation. Now it is also allowed
to create a group with the role 'ROLE_ADMIN', which implies that the
logged in user will be the group-leader. The automatic creation of a
group-leader in case od beeing 'SUPERADMIN' has been moved to a private
method.
API-Docs and whitespace. Non-functional change.
Refactored the web-interface for updating groups.

Removed updating multiple group-instances. The web-service now expects a
single group to be updated.
Also allowed admin-roles (group-leaders) to update groups.
Secured the update-group mechanism for admins.

Ensured that in case of having an admin, no super-admin, as logged in user
the update mechansim for a group will only work if the user is meber of
this group.
Easier detection of a possible admin role of a user.

Added a method for the detection of an admin-role within the User's set of
roles to the User-class.
Used the new method in create and update methods for groups.
Refactored the web-interface for deleting groups.

Ensured that admins (group leaders) can delete their own groups.
New web-interface for reading all own groups.

Implemented a web-interface in order to read all own group objects. In
case of beeing SUPERADMIN all groups are returned.
Improved create and update of groups.

Extended the create and update-interfaces for groups in order to allow
passing user-IDs which will be added to the group.
Therfore the group-model-class gets a field grantedUsers which is a list
of integers (user-IDs) which are transformed to real user objects in the
service level.
organize imports, non-functional change.