CORE, RPC: added support for changing preferred email for users

- Added requestPreferredEmailChange() which stores change request
  and sends email notification with encrypted validation link.
- Added validatePreferredEmailChange() which takes encrypted parameters
  from email notification in order to perform change itself
  (set value to attribute).
- Delete all mail change requests if deleteUser() is called.

- Users can request mail change for themselves or their service identities.
- Mail validation is accepted only with proper set of parameters and only
  if logged user is autorized for target user.
- Validation URL is reconstructed from original http request
  (passed from RPC to method itself). If value is not valid URL
  then exception is thrown a no changes are made.

Following properties must be added to perun.properties file before accepting this change:

- perun.mailchange.secretKey (key used to encrypt change request id)
- perun.mailchange.backupFrom (address used as from in mail notification)

Following changes must be performed in DB before accepting this change:

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;
CORE, RPC, GUI: very raw version of new user detail for internal testing

GUI:

- User can switch his identities by "select identity" option in menu.
  If have only one, option is disabled. Switching still can be done
  through service identities table and associated users table.
- User can update titles in name from GUI.
- Perun admin can update whole user's name from GUI.
- User can see his certificates with expiration date.
- User can change password or go to reset gui from Authentications tab.
- User can change preferred email, language and timezone.
- On service identity detail user can change its email or add new login
  (if supported namespace) and set password. Login can be added only if
  there wasn't any before (proper checks are in core method addLogin()).

- Perun GUI can be used to display mail change verification results.
- Added new callbacks, updated User object, removed unused classes.
- Better error message formatting (proper width) for "Extended" input widgets.
  Also can display HTML and not just the text.
- Updated params reading in application form gui to determine, if its
  mail validation request.

- Added test tab for JSON parser for further testing. Parsing simple
  values like string, integer works locally but not in production runtime.

CORE, RPC:

- Multiple small fixes of typos.
- Updated content of email notice, added mail subject.
GUI: updated checks for TextBox input for login

- ExtendedTextBox can now be set to processing and hard error state.
  Whench implementing TextBoxValidator it's method MUST return
  FALSE if TextBox is in processing or hard error state in order
  to stop any action depending on checked value.
- Use new TextBox states to handle external checks on input
  (like RPC call if login is available).
- Added regex for login attribute value used on users input in
  application form and addLogin/createServiceMember tabs.
  Now input form is consistent in design when checking it's values.
- Fixed event calls in IsLoginAvailable.
- Updated source formatting.