Allow habtm class_name option to be consistent with other associations
Add tests for `TypeMap#fetch` and push up to `TypeMap`

It doesn't make sense for the subclass to implement this method, and not
have it on the parent. We can also DRY up the implementation of
`#lookup` to be defined in terms of fetch, which will give us a single
point of entry
Reintroduce cache with tests
Fix shell quote on the release task
Merge pull request #17575 from shikshachauhan/make-habtm-consistent

Allow class_name option in habtm to be consistent with other association...
Some valid block calls in templates caused syntax errors

Now ActionView accepts <%= foo(){ %> and <%= foo()do %> :golf: