Bug fix: synchronous rest problem

If a position in the score contained only rests,
the performance used to stop prematurely.
Performer code sketched in Sequence.js

This code runs (without a live performer), but
the interface to the live performer has been sketched in Sequence.js.
TODO: move the performer-specific code into a
new Performer.js file (Performer object), then
make it more functional.
Eventually, runtime code will be moved to
Performer.js from the current Assistant.js file, before that file (object) is deleted and Controls.js
is updated.
Basic Performer code moved to Performer.js

Sequence.js now initialises a performer
namespace which will eventually contain the
live performance code.
The code currently  runs, but without a live
performer.
TODO:
1. remove all dependencies on Assistant.js
(i.e. change assistantPerformer.html and
Controls.js), and update Controls.js to set
the performer's track index as necessary.
2. move the live performance code from
Assistant.js into Performer.js
3. delete Assistant.js.
Sequence object deleted (discovered a bug)

Simple score playback is still working.
Sequence.js now defines a namespace, not a
Sequence object.
Assistant.js is no longer referenced. But I still have
a copy, and am intending to move even more of
its runtime code into Performer.js.
I am also intending to move most of the runtime
code in Sequence.js into Performer.js. The
performer should use the sequence, not the
other way round!
Consequent changes to Controls.js, Score.js and
assistantPerformer.html.
Known Bug: sequence.resume() does not work
correctly after a pause. The performance resumes
later in the score, as if the pause had not happened.
Bug Fix: paused playback now resumes correctly

TODO: move code from Sequence.js and Assistant.js
into Performer.js.
The performer should use (i.e. interpret) the
sequence, not the other way round. Controls.js
should call performer.play(...) instead of
sequence.play(...), and performer.init(...) should
have a sequence argument. See previous
commit comment.
Moved code from Sequence.js to Performer.js

and made the corresponding changes to Controls.js.
Score playback still works (with pause/resume), but
Performer.js still needs to be completed with the
message handling code from the old Assistant.js.
Deleted the midiLib folder. Moved all files to ap

The overview text has been renamed and revised.
Renamed Performer.js-->Player.js

And renamed namespace "performer" to "player".
The "player" is like a "MIDI file player" which can
be influenced by a live performer. So I want to
reserve the word 'performer' to mean a real
person. The docs will usually refer to a
"live performer".
Also: renamed score.createSequence to
score.initializePlayer and moved the call to
player.init(...) inside that function.
Renamed options.assistedPerformance

to options.livePerformance.
Default performance is now working correctly

Including (especially) the global speed option.
Code for the input device has been removed,
and is going to be replaced either in a separate
file or as part of the score...
Bug fix: the tracks array is now emptied in
sequence.init(...), otherwise two scores get
played simultaneously!