Dummy Fallback Fix

This is for issue #272

It looks like there were two causes for that issue. If the groovePlayer object failed to attach to a device, it would return with an error but leave the "pending attachDetach" flag set to true, so on subsequent attempts to attach to a dummy device or new hardware, the function would just return immediately. I changed the function to set the flag to false before returning in the case of an error.

The other cause was initializing the dummy first. When trying to attach to hardware, before trying to attach, groovePlayer was detaching from all devices. So the dummy device would get detached, then the hardware would fail, so groovePlayer would wind up not attached to anything. I changed the order to try hardware first, then initialize the dummy device if the hardware fails.

Everything seems to be working correctly in my soundcard-less environment.
Looks like in this case we call `cb` twice, yes? I think we can just leave off the callback, and `setHardwarePlayback` will log the error if it occurs.