Merge remote branch 'origin/develop' into qa
0000675: Running Reports (CSV vs Excel)

Since running reports in Excel format can sometimes overwhelm the server
there is now a limit of 20,000 cells when using Excel format,
Merge remote branch 'origin/qa' into release

Conflicts:
	api/exception/error_codes.inc.php
Adding additional test to delink operation

The operation now makes sure that the withdraw_letter coincides with
one such that the participant did select a delink option when completing
the withdraw script.
Tweaking role operation access (languages)

The last update didn't quite get the language operation permissions
correct.
Making a temporary adjustment to cache Opal variables

Opal has been tempermental in responding with variables on demand so
a temporary change has been made to make use of locally cached values.
Adding semaphore-counting

It is now possible to acquire more than one semaphore during the same
runtime.  This is done by counting semaphores and only actually acquiring
one when the count is incremented to 1 and releasing it when the count
is decremented to 0.
Updating error codes
List widgets now allow setting which record to view (by number)
Merge remote branch 'origin/release' into develop

Conflicts:
	api/exception/error_codes.inc.php