Added keyword substitution for course announcements

This commit pulls in changes from #4487 that implement keyword
subsitution for course announcements, using the keyword
subsitution 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.