DeviceID -> *DeviceID

All references to DeviceID outside of Euterpea.IO.MIDI.MidiIO have been
replaced with newtype wrappers OutputDeviceID or InputDeviceID.  The
constructors for these types are specifically not visible, which means
that bad values cannot be created.  This removes the need for
isValidDevice, which has thus been removed.