Adding limesurvey export to participant import

Temporary functionality used to import pre-recruited participants.
Merge remote branch 'origin/release' into qa

Conflicts:
	sql/schema.sql
Adding cascade rule to role_has_state delete
Tracking old email address when email address is updated
Adding DISTINCT keyword to get_record_list and get_record_count record methods
Updating limesurvey import details (script has changed)
Modifying transaction/semaphore system

The session now handles semaphores to ensure that transactions are
completed before a semaphore is acquired.