Added argument validation in getDevices

And also, changed the default to DEVICE_TYPE_ALL.

Janne, please review & merge. Is this the right layer to do argument validation? Is this the correct way to throw the exception?