added survey group export feature

Instructors can now export survey groups. All the user has to do
is provide a name for the csv file, select the survey group set
they want and the desired fields (minimum one). Validation has
also been added to check that a file name is provided, a survey
group set is selected, and at least one field is chosen.

I've also updated the sql files to include permissions for using
survey groups' export.
Ticket #492

removed PHP GD dependency for the bar graphs in the survey
results summary. The colours may need some adjustments.
Fixed #504

Created a default/ fall back password algorithm.
fixed a minor bug introduced in the last commit.
Add "mail" as default email sending method in scheduled email
Change mysql NOW() to php date

In case of DB and PHP on the different timezone, e.g. different setting
or different server, using NOW() will cause problem.
fixed email schedule's getEmailsToSend function
fixed broken tests

The tests were broken because the due dates set in the sample data
has past which causes the events to be overdue, which was not what
we expected in tests. The sample data now sets the due dates to the
next year. Some of the tests have also been modifed to accomodate
for the more "flexible" due dates.
Fix uninitialized object exceptions
Bump version to 3.0.7
Slightly refactored the bar graphs for survey results

I have updated the background colour of the graphs and removed unused
attributes. Furthermore, I have removed bar.php and grad.png that
were used by the GD dependent graphs.
Modified some system tests

I have modified the student_survey system test due to the change
in the bar graphs using div's instead of an image. I have also
slightly changed the home tests to include the new link to the
survey group export
Filtered out usernames from groups/survey groups export

Some roles are not allowed to view usernames (eg. instructors).
However they are allowed to export groups and survey groups with
usernames as one of the fields. I have now filtered out the username
option if user does not have the permissions to view usernames.
Modified mixeval add/edit/copy to have to a self-eval section

This is the initial commit for Ticket #502. A new self-evaluation
section has been added to mixed evaluation. The questions in this
section are only for the evaluator.

The question sections were moved to the questions editor instead of
staying in the add view because we would need to echo the questions
editor element twice which will duplicate the functions.

I have modified the sql files to include a self_eval field
for the mixeval questions table to differentiate questions between
the two sections. I have also modified the numbering algorithm for
the questions so that the questions in the two sections are not
numbered together (eg. peer eval has 3 ques, self eval's first
question will be numbered 1 not 4). However behind the scenes the
questions from the two sections are numbered together (eg. from
the example above, the first self-eval question is numbered 4 in
the table).

I have also edited some model and controller tests to reflect the
changes made to mixed evaluation.
Modified mixeval view, form and indices for the new self-eval ques

I've modified mixeval's view to include a field on the top saying
whether self-evaluation questions were added. Additionally, I have
added a self-evaluation section to display the self-eval
questions. The peer evaluation and self evaluation sections only show if
the section contains questions.

I have also modified the mixed evaluation form to include self
evaluation questions. The modification also includes filling in
submitted answers for the self-evaluation questions. Modifications
have also been made to the validation to check whether all required
questions are answerd whether they are in the peer evaluation section
or the self evaluation section.

Lastly, I have added some virtual fields that counts how many questions
are in each section and modified the "score" of the evaluation mixeval
is the sum of the points scored in required peer evaluation questions.
Included self-eval to mixed evaluation results

In the instructor's detailed evaluation results view, an
accordion for self-evaluation will be created if any self-evaluation
questions are included in the evaluation. The results
are grouped by questions to allow easy comparisons.

In the instructor's basic evaluation results view, a table
for self-evaluation will be created if any self-evaluation Likert
questions are included in the evaluation. The grades displayed are
the averages of each question. This allow instructors to know
on average what the members gave themselves for the questions. Also
the question average is more useful than the sum of the marks the
students gave themselves.

In the students' detailed evaluation results view, a self-evaluation
section will be created if any self-evaluation questions are included
in the evaluation.

In the students' basic evaluation results view, a self-evaluation
section will be created if any self-evaluation Likert questions
are included.

Overall, I have also modified some of the elements to allow
customizations to the text to reflect the difference between
peer-evaluation and self-evaluation questions. Also I have added
a check whether the evaluation has peer-evaluation quesitons. This
is to introduce more flexibility where we can have evaluations
that only have self-evaluation questions.
More modifications on mixed evaluation for self-evaluation

I have removed scoredropdown from the question types for
self-evaluation because it does not make sense to have a
"distributing marks" questions for one person.

I have also removed self-evaluation questions from tutor's mixed
evaluation because in general the reflection questions are for the
students.

I have modfied export_csv to print out the self-evaluation results
in a separate table right below the peer evaluation results table.

I have modified export_pdf to include each student's self-evaluation
results right below their peer evaluation results.
Merge remote-tracking branch 'origin/dev' into ipeer3.2
Fixed some bugs in mixed evaluation relating to self-evaluation

Firstly, I have fixed some checkstyle errors from the last commit

I have also slightly modified export pdf inComplete/unEnrolled
list generator. The code is now checking whether the list contains
any ids first before grabbing the users' names. This way it solves
the bug that sometimes return names of users that are not even
in the group. I have also slightly modified mixed evaluation to
accomodate the possibility of having empty sections. For example,
having peer-evaluation questions but were filtered out with one of
the available filters.

Fixed saving self-evaluation questions bug if the evalutor is not
asked to evaluate themselves with peer-evaluation questions.

Removed ScoreDropdown questions from the Self-Evaluation section
because it doesn't make sense to distribute marks to only one person
(eg. evaluator).

Changed the student mixed evaluation results view to auto display
self-evaluation results similar in rubrics where the evaluator's
submission is displayed whether the results are released or not.
Therefore no release buttons are required for self-evaluation results.
Modified sytem tests for mixed evaluation

I have modified student_mixeval to include some of the changes
to id and class names due to the addition of the self-evaluation
section.

I have added tests for adding, editing, and reordering self-evaluation
questions in add_mixeval system tests.