Notifications: checking teplate syntax when create

- the NotifTemplateMessage syntax is checked before storing in DB when
  creating or updating
Notifications: fix bug in constraints of receiver

- two receivers with the same target(email) templateId and locale are not
  allowed
- this commit adds the templateId
Notifications: log undefined values

- undefined values were skipped, but not logged - this commit adds
  logging
Notifications: limit for life time of poolmessages

- pool messages are deleted from db after certain time limit (now set to
  10 days)
Merge pull request #576 from jirmauritz/notification

Notifications: checking teplate syntax when create and set time limit for pool messages
make engine ignore facilities (for testing of new engine)

{alcor,aldor,ascor,torque}.ics.muni.cz
nympha-cloud.zcu.cz
Lower number of gen workers in Engine

- Due to new functionality with preferred unix GID, gen services using
	this new attribute takes more time to get data therefore generating
	process ends on apache timeout.
- This patch lowers number of gen workers. Hopefully this decrease stress
	on core and even passwd gen services returns data before apache
	timeout.
Synchronizer checks near members' experations

Synchronizer checks if any member will expire in near future or has
expired recently. If so, message in audit log will be emitted.
runs Synchronizer.checkMemberState on devel

Periodically runs Synchronizer.checkMemberState on devel (seme settings
as is on production).

We will use it for testing membership expirations.
alter table users modify last_name varchar2(64);
alter table users alter column last_name drop not null;
Merge pull request #582 from zoraseb/users_lastname_nullable

alter table users modify last_name varchar2(64);
DB: Updated DB version in sql files comments to current
Merge pull request #586 from zlamalp/db

DB: Updated DB version in sql files comments to current
New Synchronizer workflow

 - synchronizer will synchronize only those extSource members with
   correct informations and attributes
 - method getCandidate from extSource and login will change firstName
   and lastName on null if in not correct format
 - methods createMember* will throw WrongAttributeValueException and
   WrongReferenceAttributeValueException instead of consistency
   exception, because this is not the same
 - new ParserException created for parser errors in Perun
 - method synchronizeGroup will return List<String> with info about skipped
   members and the reason why were skipped
 - method synchronizeGroups will set exception to attribute for this
   purpose to inform user about skipped extSource's members
 - when some problem occurs (like parserException,
   attributeValueException, candidateNotExistsException) in
   synchronization, member of extSource which create this exception will
   be skipped and information about this skipping will be add to
   attribute with info about last synchronization of group
Merge pull request #583 from stavamichal/newSynchronizerWorkflow

New Synchronizer workflow
New method of date comparison in synchronizer

Fix of c5a83c75cc749b5d33dfc1cac4426d52ae18a161

Old method for comparing dates do not work properly (sadly I don't have
enough time to find cause).
Revert "make engine ignore facilities (for testing of new engine)"

This reverts commit 5876305d5eaae3c210beed7d08567038c98d520a.

This commit should not get to master branch.
New authz for topGroupCreator

TopGroupCreator can call getCompleteRichMembers and getGroups

GroupManager can call this methods anyway and topGroupCreator can easily
create group and become groupManager

This is hack for eduGAIN group service - because miniapplication for
eduGAIN group service call this methods at start and not when they are
really needed.
Do not set role VO_OBSERVER in eduGain registrar module

Users in eduGain group service should not see other user's groups
Hack to add perunv3/admin@META as privileged user