Added support for an external storage for voicemail medias.

I wanted to save the voice mail medias in a different place, like the custom URL that we have in Recordings callflow module. 
Ok, I didn't know that we could get a new voicemail message for a box without owner. Well, my intention here was to keep track of the voicemail information, so an external application managing the media storage could know who owns the media. 
In the case of a mailbox without owner, the `OwnerId` of `store_recording/5` will be bound to `'undefined'`, right? So I think the crash that you are mentioning will be the `OwnerId/binary` code in the `get_media_url/5`. 
As I've said, the intention was have the user information, but in this case I think let it as `<<"undefined">>` is not a problem, so the solution would be create a new `get_media_url` function with guards for `OwnerId` atom value.
Do you have other suggestion? Thanks for the comments.