so much for DRY code

Lots of view helper-related code by changing the behavior of
`call_method_or_proc_on`, so I had to revert it.

The plan is to combine `table_for` and `attributes_table_for` so they
use the same code, so at least we'll have less duplication because of
that.

Note that I changed the collection-detecting code to do literally what
we expect, instead of trying to class-detect every possible variation.
This was necessary to keep collection decorators working.