Some bugs corrected

Changes include:
- In file midi.h corrected a typo (gave a warning)
- In file sequencer.h added an attribute to the class MIDISequencerState
(see below)
- In file jdksmidi_sequencer.cpp corrected the GoTo... functions (they
stopped AFTER the proper event) and the MIDISequencerState::Process()
(if the sequencer was started on a beat it didn't send the first beat
marker message: it was necessary to add a new attribute to
MIDISequencerState class)
- In file jdksmidi_advancedsequencer.cpp corrected the functions
GoToZero(), SetMltChanged() and ExtractWarpPositions()
Added a function to AdvancedSequencer

Added the function GetCurrentMIDIClockTime() to the class
AdvancedSequencer
First function for editing events in tracks

Changes include:
- In file msg.h and jdksmidi_msg.cpp added functions
CompareEventsForInsert() and IsSameKind()
- In file track.h and jdksmidi_track.cpp added functions Insert(),
Replace(), Delete(), GetLastEvent(), IsTrackEnded() SetEndTime() and
revised functions PutEvent and FindEventNumber()
- Added a new example file (in progress): test_stepsequencer (.h and
.cpp)
Revised msg.h and msg.cpp

- Inlined many simple methods (i.e moved implementation from the source
to the header)
- Added two methods to the class MIDIMessage: IsPedalOn() and
IsPedalOff()
TODO: finish doxygen documentation
Other functions to edit a track

- Added the CloseOpenEvents() method to MIDITrack
- Correct a typo in msg.h
Other functions to edit a track 2

Changes include:
- Revised event editing: in class MIDITrack: now it is done by methods:
InsertEvent(), InsertNote(), DeleteEvent(), DeleteNote(). event
replacing is managed via a parameter ins_mode. Files affected: track.h,
jdksmidi_track.cpp
- Modified two methods in jdksmidi_msg.cpp
- Many Improvements to  the example file test_stepsequencer (.cpp and
.h)
Edit functions in multitrack

Added to multitrack class corresponding functions
InsertEvent(), InsertNote(), DeleteEvent(), DeleteNote().
Added also function IsValidTrackNum()
Updated documentation in msg.h and track.h

Added doxygen comments to these files, included new functions added by
me.
Documentation in msg.h yet unfinished
The method MIDITimedBigMessage::GetPan() was'n t declared in the header:
fixed and added a const specifier to the .cpp
Added a function to MIDITrack

Added to the class MIDITrack the method NoteLength to get the length of
a note (as requested in issue #4) in track.cpp
Tuned doxygen comments in track.h
Improved example test_stepsequencer (.h and .cpp)
Manually merged some features of experimental

Big update to class AdvancedSequencer, replacing embedded objects with
pointers to allow polymorphism; also added two new constructors.
Changed a function in class MIDIManager.
Updated test_advancedsequencer.cpp and test_win32.cpp to reflect
AdvancedSequencer changes.
Corrected a bug in jdksmidi_msg.cpp

Corrected a bug in the method IsSameKind()
Changes to reorganize driver, manager and AdvancedSequencer

Start to reorganize these classes to allow in the future the development
of MIDIDriver for other OS
Many MIDIDriverWin32 methods declared as pure virtual in MIDIDriver,
eliminated almos all OS specific code from MIDIManager and
AdvancedSequencer classes (there are still some temporary hacks). Code
should compile (without some features) in every OS
Merge remote-tracking branch 'origin/experimental2'
Corrected mergin bugs. Doc to MIDIMultitrack

Corrected some bugs in test_win32 and renamed it to
test_win32_player.cpp.
Added doxygen comments to the file jdksmidi/multitrack.h
Resolved a bug in AdvancedSequencer when a file is loaded
Merge pull request #13 from ncassetta/master

Pull request from N. Cassetta