Refactoring and additions related to hint experiments

This goes along with "https://github.com/code-dot-org/blockly/pull/767".
can this ever be nil?

maybe even put this logic in a method in the ActivityHint model so it's closer to where the meaning of hint_visibility is defined, and call it something more meaningful