Add methods to suspend / resume devices.
resume thread on stopping.
Reduced CPU usage in MidiInputDevice.
Reduce memory allocation at MidiInputDevice.
Ignore events while MidiOutputDevice thread is suspended.
Merge branch 'feature/suspend_threads' into develop