Explicitly define manufacturerID getter

It looks like in the current implementation, internalData is getting set w/o going thru any kind of processing. So, when initializing instance of MIKMIDISystemExclusiveCommand, check if the manufacturerID is 0, if so, we should assume the message contains a 3 byte manufacturerID region, with the actual ID having 2 bytes...
Add modelID property to MIKMIDISystemExclusiveCommand

... indicated in the byte following manufacturerID
Don't append extraneous terminating byte to sysex messages' data

When instances of MIKMIDISystemExclusiveCommand are created via initWithMIDIPacket, internalData will contain the terminating byte, so the data accessor should probably check if we already have terminating byte before deciding to append one.
Use all sources and destinations Testbed app
Better check for 3byte manufacturer ID when instantiating with midi packet
Add button to clear contents of output window
Make testbed's output textview configuration more appropriate

No use for RTE or editing, and spellchecking is annoying - the view is overly populated with spellchecker's underlines
Make Testbed's text view scroll to the end of document to track output
Change MIKMIDIObject's description to include timestamp formatted in H:M:S in system time zone

Not sure why use reference date of feb. 3, 2014
Dump entire data in description, don't strip off the first byte

More useful for debugging purposes and spotting errors
Layout constraints for clear button
Set minimum window size for MIDI Testbed

Buttons at the bottom shouldn't be invading each other's space
Add more precision to timestamp as shown in description
Revert "Add modelID property to MIKMIDISystemExclusiveCommand"

This reverts commit b87648dc2f767918ee56776ce715debdbfc9afe3.
Resolve ambiguity with sysexData and sysexChannel

Add "universal" property to indicate whether sysex message is universal. These messages will contain a channel byte. Everything after that byte is considered sysexData - there's no change in the subdata that was getting returned prior to this change. In the even of a non-universal sysex message, channel will be 0, since channels aren't normally included in sysex messages, and sysexData will span a range starting with the byte following manufacturerID (prior to this change, that information was discarded).

That means: for universal messages subID's are included in sysexData, for non-universal messages, any device specific information (such as modelID, versionID or whatever manufactures decide to include) will be included in sysexData.
Make MIKMIDICommand descriptions easier on the eye

Add additionalCommandDescription method, which returns empty string by default, and gets overridden in subclasses to return command details. Move data dump onto next line
Get rid of recently introduced extraneous logging
Return nil instead of empty string for additional command description
Add class method for sysex identity request message
Add ability to send custom MIDI packets in MIDITestbed app

Add combo box to allow execution of custom data; add Identity Request data to the popup list for easy selection