1. Changes to fix issues in LMS unit tests.
2. get_discussion method - Need to continue to support
external_discussion links for now since used by 6.00x course.
3. Changed CourseTab.type() from an abstract method to a class
attribute instead.
4. Extended the __eq__ operator to support comparing with
dict-type tabs.
5. Added a boolean raise_error parameter to the validate method to
support calling from the __eq__ method without throwing exceptions.
6. Added _validate_num_tabs_of_type method.