Make sure the widget won't crash when no `terminology` option
is passed.
Also for the translation extraction system to work, each literal
term needs to be enclosed in its own _t() call:
// No
var trans = _t(term || "Default term");
// Yes
var trans = _t(term) || _t("Default term");
The _t() function supports `undefined` arguments so the second
form is equivalent to the first form at runtime, but supports
proper term extraction.
Finally, simplified the implementation a little bit,
requiring `hover_true` and `hover_false` "action descriptions"
to be provided explicity in custom terminologies.
Previously we tried to reuse the values from `string_true` and
`string_false`, but they describe a state rather than an action,
so they are hardly ideal.