Optional hints

Pass information from an experimental URL parameter back to Blockly for the experiment in which users may have to press a button to see the hint.  Changes to Blockly are in https://github.com/code-dot-org/blockly/pull/757
First clause could be combined into `hint_visibility_experiment_user_id.try(:to_i)` (we use that pattern a bunch throughout the project)