Change error message for typo in helper's name

I've tried to make the error message more helpful, when helper name is misspelled. I created new type of error (MissingHelperModuleError) which is raised when expected constant is not loaded. I'd appreciate any feedback  about my solution.

Fixes #16468
I've found a solution that won't trigger an autoload.

```ruby
file_name.camelize.tap do |helper_name|
  unless Object.const_defined?(helper_name)
    raise NameError, "Couldn't find #{helper_name}, expected it " \
      "to be defined in app/helpers/#{file_name}.rb"
  end
end.constantize
```

I still wish we had a better test that could reproduce the error.