Add periodic effects for haptic devices. This adds support for drivers supporting sine, square and triangle periodic haptic effects. This allows rumble to work on devices/drivers supporting these effects, such as an xbox controller using the xpad driver under Linux.