Add custom popups to content [TUS-2856]

HTML content edited in TUSK can have popup hovers now.

Example:

I am a sentence that has some
<span class="tusk-popup-container"><a href="#">hover text with
link color</a>
<span class="tusk-popup-content">I am the text that pops up.
Hello!</span>
</span>
fixed to-do list to show evals that would match with teaching site (TUS-2852)
Merge branch 'stage' into t2852-isarin-eval-to-do
Fix external content [TUS-2885]

External links to e.g. Medline were not working after 4.0 upgrade. Fix
TUSK::Content::External::Source::OVID to add 'POST' to allowed
redirects for LWP::UserAgent. Fix code/tusk/view/urlExternalContent to
get decoded_content from the response instead of using as_string.
fixed double header bug with the eval pages
Add tusk_tables and pod to TUSK::DB::Util

Add bin/db/tusk_tables.pl driver script. Refactor TUSK::DB::Util.
Fix gradebook showgrades for display order [TUS-2877]
Add grade categories (kludge, see TODO) [TUS-2877]
Add grade categories with complete hierarchy [TUS-2877]
fixed notifications in tutoring services management page. solves t2890
Fix gradebook to work with "0" grades [TUS-2880]

HTML::Defang->defang return an empty string when passed the string
"0". This commit fixes MasonX::Plugin::Defang to avoid passing the
request argument to defang when it consists solely of the character
"0".
Fix pending eval scaled grade [TUS-2895]
Fix grade display time period order [TUS-2897]
Add jpeg extension to file upload types [TUS-2898]
Fix eval email reminder select all [TUS-2829]
removed competency type form public view'
fixed joinobject bug for section question (TUS-2910)
fixed export excel spreadsheet for all grades
Cleaned up identation of satisfy().
Clean up some bad indentation.