MIDI: API changes to support multiple ports per device

Add MidiInputPort and MidiOutputPort classes (with MidiPort base class)
A MidiDevice can now have multiple input and output ports.
Multiple ports are currently supported only for virtual devices, USB support coming later.

Change-Id: Ib55076aa1374aa46ae4ae76ad93bd717df6d7e21
9 files changed