Display total authors in category / total authors in each list item

This extra information was only displayed on focus, which only
worked in Firefox; it was not present previously in other browsers.
Move utility function getSelectedOption to new module forms-utils

The function may thus be reused in different modules.
Expand the text of filter options on focus, reduce on blur

The goal is to display a reduced version of the option text
most of the time, while providing extra information only in
the context of the selection.
Refactoring: extract functions for common code
Extract function getSelectedOptionText()

This helped to generalize the function to set the option text,
now renamed to setOptionText().
Resize filter lists dynamically to match the selected option width

The new implementation is done mostly in JavaScript with a little
help from the DOM to measure the width of an option with a given
text and a little help from CSS to hide the extra markup from the
user interface.
Measure the select width, not the option width

In Safari, the clientWidth of option elements is always 0.
I updated the code to measure the clientWidth of the select
element instead, which works both in Safari and Firefox.
Add utility functions to pad a string to reach a given length
Extract utility methods related to strings to string-utils module
Rename printData() to printRecords() to clarify

The methods of csv-utils with a name ending in Data() skip
the header to process only records with actual data, while
printRecords() prints all records, including headers record.
Add utility function reduceData()
Pad text to align extra text on the right in filter options
Add filter by institution type

I also reordered the definition of components in the contribution code,
with the country id now between the role id and institution type id.
Refactoring: prepare to filter options based on selected authors
Use shared property instead of parameter for selected-author-check
Rename count-author-records to count-total-authors

This module will now be responsible for publishing the property
"total-authors" with the count, while a separate module, named
display-total-authors will display the value in the DOM.
Extract display-total-authors from count-total-authors

The new module uses the property published by the existing module
to update the display.
Rename count-selected-authors to count-total-authors-selected
Rename count-selected-authors-percentage

The new name, display-total-authors-selected, reflects the new
responsibility: this module will update the display of the total
and percentage of selected authors, while the module named
count-total-authors-selected will publish properties with the
computed values.
Count selected authors in one module, update display in another