CORE, RPC, GUI: redesigned user's self detail, support for mail change

- Redesigned user's self detail with better identity selection and many more options.
- Added support for changing preferredMail value with mail address validation.
- ExtendedTextBox can now check for validity of value remotely 
  (used to check if login is avaliable => unified input form design).
- We can add new login in supported namespace to service identity.
- Display future membership expiration to VO admin if extension
  application will be approved on application detail.
- User can exclude himself from mailing list.
- User can set list of preferred shells and set his timezone.
- BasicOverlayType can parse list of primitive types
- Allow to get back again to using resources default / preferred shell on "resource" for users
 (remove value of user_facility:def:shell attribute).
- Various small code and javadoc fixes

Before accepting this commit to production, following changes must be made:

Update DB (following SQL respect postgress notation):

create table "mailchange" (
	id integer not null,
	value text not null,
	user_id integer not null,
	created_at timestamp default now() not null,
	created_by varchar(1024) default user not null,
	created_by_uid integer
);
create sequence "mailchange_id_seq" maxvalue 9223372036854775807;
alter table mailchange add constraint mailchange_pk primary key (id);
alter table mailchange add constraint mailchange_u_fk foreign key (user_id) references users(id);
create index idx_fk_mailchange_user_id on users(id);
grant all on mailchange to perun;

Add properties to perun.properties file:

- perun.mailchange.secretKey (key used to encrypt change request id)
- perun.mailchange.backupFrom (address used as from in mail notification)
- perun.mailchange.validationWindow (how long from receiving request user can validate new email in hours)