Use ref-id for all trs

Selection (and sorting) will need to know the ID or reference of the item rather than the index in the display.  This is also needed for Virtualization.  This leads down this direction.

The only controversial piece is the usage of $parent in the TableSelection directive.  This was needed since the scope in the table selection is for the table, but selection usage is likely used in the parent (which would include the toolbar)

Fixes #44
Why are the functions for the selection in a generic controller?
Why not have each directive have its own controller with its specific functions?
Sure we have to manage collision between directive but then all code related to selection is together. Name collision should not be a real issue as long as things are named well.