Tables plural caption

This PR contains two changes that proved useful in our implementation:

1) The caption and icon of the table header are held in the table class instead of an potentially unrelated context variable. We often have different tables for the same thing, depending on, for example, which tab in the product list is shown, or which rights the logged in user has in the dashboard. Also we display the same table in different views. In both those cases if the header is the same, you shouldn't have to specify it in more than one place.
2) The default table caption mentions the number of rows in the table data set. The caption can be set to anything, and also the singular and plural forms can be customized per table.