SDL: add more rumble types and fix minor issue

the first commit fixes issues inside the rumble code based on uninitialized fields in the haptic effect struct. Allthough it shouldn't have any effect on the current code it makes it harder to add more complex SDL_Haptic types like all SDL_HapticPeriodic based ones.

The second commit adds three more rumble types: sine, leftright and triangle. They all use default values as far as possible and should be only to get gamepads working which only support these like the xbox360 usb gamepad. The leftright type is splitted into a Small and Large Effect, so that a user can use them seperatly.