Refactoring and additions related to hint experiments

This goes along with "https://github.com/code-dot-org/blockly/pull/767".
private applies to all following definitions (until there's another visibility statement), not just the next one. if you want to specify one method at a time you can use `private :method` or `private_class_method :method`