Make 'All' and 'None' buttons respect filter

'All' now selects all competitors filtered and 'None' deselects all such
competitors.
Remove unused methods

Functionality has since been moved into the competitor list.
Make 'Crossing Runners' respect any filter set
Deselect all runners on double-clicking 'None'

Provides a way to deselect any competitors that happen to be selected
but are not currently matched by the filter.
Add TO BE TRANSLATED markers
Rename age classes to course classes

File renames to follow in subsequent commit.
Rename age-class.js to course-class.js

Similarly for age-class-set.js and the corresponding tests.
Read competitor genders and years of birth

From these values a competitor's age class can be determined.

Supported only in SI 46- and 60-column variations and both IOF XML
formats.
Merge branch 'issue25_age_class_handling'

Conflicts:
	js/viewer.js
Introduce 'data' build

The 'data' build contains only the results data reading and supported
files; it does not contain the GUI controls.  This could be useful for a
league-table calculator.

Furthermore, the data build does not use messages, so it does not need
one of SplitsBrowser's language files In order to achieve this, a method
was removed from competitor.js and moved to chart.js.
Some HTML tidying-up

The main intention is to make it easier to use SplitsBrowser with
right-to-left languages, so CSS classes are used to apply float:left or
float:right to the controls on the top layer.

Some possibly-invalid HTML has been fixed (particularly regarding child
elements of spans) - this caused some issues with elements not always
being rendered in the correct order even when RTL was in force.
Fix failing tests
Move content into a container div

Avoids any use of body styling.  Additionally, CSS has been moved to
apply to the container instead of the body.

This has also included minor styling changes to the error display, the
unsupported-browser page and the test-data catalog.

An additional bug encountered while changing class while viewing the
results table has also been fixed.
Tighten preformatted HTML recognition

Event 7539 on splitsbrowser.org.uk appears to use an HTML format that
contains a pre tag, but it is not the 'old' format recognised so far.
We now check for the existence of font tags as well, which the existing
format has but the new format does not.
Reject HTML in the CSV reader

Event 7539 on splitsbrowser.org.uk is in an unrecognised HTML format
which happens to have a single comma on the first line.  This caused the
CSV reader to think that it was CSV, which it would then fail to parse.
Now, the CSV reader checks for the presence of HTML and refuses to
handle the data if it finds any.
Fix issues with comparison selector

Issues were (1) getComparisonType() didn't always work after selecting
'Any runner...', and (2) if you have two courses selected, one of which
has no winner, and you deselect the other, you need to switch away from
the 'Winner' or 'Any runner...' comparison types if you are viewing one
of them as they require a winner.
Add further file to testdata catalog

Extra file is for an SI 60-column file with a timed start (i.e. blank
values in the start punch column).
Update version number and generated JS files