Bug fix: remove decrement on offset provided by forEachData callback

I had left a decrement, which is now applied directly in forEachData.
As a result, all values were shifted by 1 position.
Move constants from filter-categories to filter-constants

I defined a missing constant and used the constants defined
in filter-constants in filter-categories.
Add prefix FILTERED_ to CATEGORY_* constants in layout

There was an ambiguity with CATEGORY_* constants defined in
filter-constants for the offsets of category records: the
columns in a filtered category record are different.
Add separate property totalAuthors in each cell object of layout

This property is set in a newly introduced function,
setTotalAuthorsInCell().
Count authors in each table layout in setTableLayoutDimensions()
Refactoring: inline setLayoutDimensions() in updateLayout()

The function will now also be responsible for sorting charts
by the total number of authors selected and deleting empty charts.
Add local variable charts in updateLayout()

After setting this local variable with a list of charts,
which contains a single chart when the top level element
of the layout is 'chart', I could extract common code of
of the conditional.
Wrap charts in a new "charts" structure in "layout" event

In the next step, I will sort and filter the list of charts,
which requires to update the list in the original structure,
or wrap the new list in a new structure.

I chose the second option, which results in a single chart
being wrapped in a "charts" structure as well.
Order charts by descending number of total authors

I have also removed charts with no author selected.
Merge branch 'enhancements'