(Joker) Close the media panel to really close the application

Without this, Joker could stay opened in the background even if it
appeared closed.
Do not add the input port to the output ports

I cannot see why this is here... it adds a bogus entry...
(MidiTool) Add a specific setting for the existing port use

This decouples the logic for the 2 settings midiInputPortName and
virtualInputPortName, so that it will be easier to disable the virtual
feature on Windows where it is not available.

It also prevents issues when a port disappears between two Joker
uses (the MIDI interface is unplugged for example). Before this commit,
the old interface name would be used as the virtual port name...
(MidiTool) Disable virtual port widgets when the feature is unavailable
(Joker) Add a specific setting for existing/virtual MTC input port

This decouples the port name settings, and will make it easier
to disable the virtual feature for Windows where it is not available.
(Joker) Disable virtual port widgets when the feature is unavailable
Remove PhClock::tick and use PhClock::elapse instead

Now PhClock only manipulates integers. The possible floating-point
errors are the responsibility of the callers.
Update the clock with a QElapsedTimer instead of the screen refresh period

This fixes two situations where Joker clock can drift:
- if V-sync is not enabled (hard to control on Windows)
- if some frames are dropped (and some will inevitably)
Uncrustify
Prefer timePerFrame instead of manipulating fps
Merge pull request #281 from tlecomte/tlFixNoVsync

Fix no vsync
Merge pull request #283 from tlecomte/tlFixJokerClose

Close the media panel to really close the application
Merge pull request #284 from tlecomte/tlMidi

Midi: no virtual ports on Windows
(PhMidiTimeCodeWriter) Do not change time in the middle of a QF sequence