Added keyword substitution for course announcements

This commit pulls in changes from #4487 that implement keyword
substitution for course announcements, using the keyword
substitution mechanism added by #5449. The changes introduced
by this commit allow an instructor to include keywords in
course announcements. The same keywords available for bulk emails
are also available here.