Fixing bug in participant report
Fixing warning caused by change to consent record

When checking whether a participant's withdraw_letter has been set
before adding a new consent record the participant_id is not always
set.  This was causing warnings in the log.
Tweaking last commit (using better logic test in if statement)
Final fix for consent::save() bug
Merge remote branch 'origin/qa' into develop
Merge remote branch 'origin/qa' into release
Adding first and last name to user list
Tracking old email address when email address is updated
Merge remote branch 'origin/release' into develop
Adding DISTINCT keyword to get_record_list and get_record_count record methods
Fixing bug in participant multiedit template
Bumping development to version 0.2.5
Modifying transaction/semaphore system

The session now handles semaphores to ensure that transactions are
completed before a semaphore is acquired.
Fixing typo
Adding source management

Added additional option for source's participants to override quota restrictions.
Fixing bug in event list widget (broken event name sorting)
Fixing bug in participant report

Event end date was not resolving correctly (was comaring datetime to date)
Greatly improved performance of CSV report output type

- replaced internal library for generating CSV files with native code
- reports generation time no longer scales linearly with the number of rows
Merge remote branch 'origin/release' into develop
Fixing some exceptions

Exceptions aren't parsed correctly when the exception type is not
on the same line as the lib::create call.