Latest rust fix

First of all, let me say I'm not the author of these changes (I just know they make `AngryLawyer/rust-sdl2` build), and I'm very new to rust, too.

That said, I read this as saying that the callback must exist for at least as long as the AudioSpec, which I think is a good enough constraint (I don't get the impression from https://wiki.libsdl.org/SDL_AudioSpec that SDL intends to call the callback after the struct is gone).

I wonder, though, if `open` should make sure that the input and produced `AudioSpec` (and thus, their callbacks, which should be the same) exist for the same lifetime, i.e.

`pub fn open<'a>(device: Option<&str>, iscapture: int, spec: &AudioSpec`**`<'a>`**`)
     -> SdlResult<(AudioDevice, AudioSpec<'a>)> {`

Thoughts?