WIP
Experiment with table interfaces and classes
Add FindsByElement
Experiment with CellDefinition
Clean up Table.java
Correct iterator
Add role interfaces for richer table types
Remove FindsByElement and such

If this is needed will be in a different pull request
Merge branch 'master' into table
Remove default implementation of isEmpty

It may be common to want to check isEmpty inside getRowCount, and this
removes the possibility of stack overflow. Most rich tables have special
logic for isEmpty, anyway. (Such as checking for an empty message, etc.)
Add javadoc
Merge branch 'master' into table
Add sensible defaults to PaginatedTable
Add interface for defining headers
Merge branch 'master' into table
Add interface for working with table header contents
Push sorting responsibility into column definitions
Rename getCurrentlySelectedOption to getSelectedOption
Remove final modifier from getContext

I'm conflicted on the value of final modifiers so I would not be
surprised if more started to get removed. In this case, it's nice for
specific Views to be able to override the return value of getContext
when you know the context for that view _must_ be a certain type, more
specific than ElementContext (such as WebContext).
Merge branch 'master' into table