Cast the events before iterating it.

This prevents foreach errors when using mocks.
Make table objects event listeners.

Use the same conventions as behaviors for mapping event names to
methods. Table objects bind their events **after** the initialize
callback. This allows them to have the same sequencing as controllers
+ historical behavior.

Refs #2410
Merge pull request #2416 from markstory/3.0-table-events

3.0 table events