initial commit for self-evaluation feature

- created a new model SelfEvaluationType to store the different
self-evaluation types. A database upgrade is needed
- the SelfEvaluationType model is related to the PostsForQuestions
model.
- the option to add/remove self-evaluation has been added to the
question form. Currently, there's only one self-evaluation option
implemented the self-evaluation interface

Note: database needs an upgrade.

- created new api functions to return count of self-evaluations
submitted (course-based and question-based) - selfeval
- create api function to return all answers submitted by a user
in a question
- made a minor modification to the post comments for answers api
function to mark the comment as a self-evaluation if the attribute
is given
- added two new attributes to the PostsForAnswersAndPostsForComments
	- evaluation -> mark comment as from an evaluation
		(not being used currently)
	- selfeval -> mark comment as from a self-evaluation
- created an upgrade script to add the two new columns to
PostsForAnswersAndPostsForComments
- added new UI for self-evaluation. Currently the default self-evaluation
type uses the comment form as a template
- modified some of the logic on the course page and question view page
to display the Evaluate and Evaluated buttons
	- there are now "two" Evaluate buttons. The new one goes directly
	to self-evaluation if it is not completed and all the evaluations
	are completed