Keep comments in capa XML from causing failures

Comments (and processing instructions!) are handled oddly in lxml.
This change will keep them from causing failures.  They will be omitted
from the HTML generated, which is fine, since they aren't needed there.
A test that our XML-comments fix works.
Merge pull request #805 from edx/ned/fix-allow-comments-in-capa-xml

Keep comments in capa XML from causing failures
Fix for bug BLD-277

"There is a white panel over a non-youtube video."
When the captions file is not specified, we simply do not render the captions panel.
Added Jasmine test for bug fix. Updated comments.
Fixing code as per suggestions on PR 771.
Remove caption panel when anything bad happens.

Now the captions panel will be shown with captions only after successful
retrieval of captions.
Applying code changes as suggested by Anton.

Fixed 2 failing Jasmine tests. Removed unnecessary console.log() call.
Initializing of variables in a single var statement.
Using native Jasmine-jQuery method to check for hidden el.
Merge pull request #771 from edx/valera/fix_empty_captions_panel_no_captions

Valera/fix empty captions panel no captions
Fix the requirements in the sandbox instructions
Merge pull request #821 from edx/ned/fix-the-requirements-in-the-sandbox-instructions

Fix the requirements in the sandbox instructions
Studio JS fixture files no longer need individual symlinks
Merge pull request #818 from edx/will/cms-js-fixtures-dir

Studio JS fixture files no longer need individual symlinks
Add bulk email feature for instructors, with optout option

Adds a new Email link to the instructor dashboard for frontend interface to send
email to course members. Adds a feature flag ENABLE_INSTRUCTOR_EMAIL to toggle this.
Creates a new djangoapp bulk_email that handles this action by getting the recipient
list and batching the emails to different celery tasks to do the actual sending.
Requires lynx package to convert HTML email to plaintext. Handles SMTP errors by
retrying or falling through to the next email. Adds the option to opt out of course
specific emails in the user dashboard with an Email Settings link for each course.
Uses severable configurable settings with defaults. DEFAULT_BULK_FROM_EMAIL
specifies the from address for email. EMAILS_PER_TASK specifies the number of emails
each celery task takes on. EMAIL_HOST, EMAIL_PORT, EMAIL_HOST_USER,
EMAIL_HOST_PASSWORD, and EMAIL_USE_TLS for the SMTP email backend settings.

Co-authored-by: Akshay Jagadeesh <akjags@gmail.com>
Add HTML editor for authoring bulk email message (adopted from CMS)
Add delay to course bulk email task and use SITE_NAME for site url

 Delay for possible race condition with fetching course email object.
 Use settings.SITE_NAME for host name to generate email footer url.
Bulk Email: Add design styling

Switch to using decorators; refactor and cleanup tests.
Disable bulk email for XML-backed courses
Refactor html->plaintext conversion (for bulk email) into separate library