Fix to not being able to accept shadowAttributes

- recursive -1 used for loading attribute, then referencing the event
Merge branch 'hotfix-2.1.9'
Users weren't able to change the contactalert field
Merge branch 'hotfix-2.1.10'
Some smaller fixes

- PGP key of the user shown in the profile instead of always showing N/A

- Contact e-mails now include the instance's owning org in the subject

- Users can now enable/disable contact e-mail subscriptions
Changes to the shadow attribute controller

- users that weren't publishers couldn't accept / discard proposals

- emails were blocked by an incorrect debug mode for the e-mailer
Small fix to the previous commit
Fix to the e-mailing
Merge branch 'hotfix-2.1.11' into hotfix-2.1.8
Upgrade script for 2.1.8

- we have introduced the "locked" flag for events to protect events of the original creator from being edited by a sync user

- IMPORTANT: before running the script below, make sure to create the locked field for the event table (see INSTALL/LOCKED.sql)

- This script (generateLocked found in the Administrative tools menu) will attempt to set the locked value for existing events to ease the transition

- The default value for locked is 0, and all events created on the instance should be set to this value

- events that were synced from another instance should have their locked value set to 1

- this script checks for local organisations and sets the locked field to 1 for all events not created by them

- a local organisation, as defined for the scope of this scrips is: an organisation with at least 2 members or an organisation with a single member that is not a sync user.

- The script is only accessible by site admins and will return a notification about the number of events altered.