Fix broken YAML
Refactor the Storage API

Make message types arguments rather than part of the method names. This allows for fewer nasty #send calls and for users to implement their own message types if desired.
Update existing call controllers to use the new storage API
Fix whitespace and change File.exists? to File.exist?
Add a generic storage class

This storage class does nothing except provide a place for voicemail's storage API to be documented.
Replace Storage#next_message with Storage#get_messages

Storage#next_message relied heavily on something being done with each message (archive, delete, etc.). However, if a user wished to just skip over a message, or in instances where nothing was done to the message, each call to #next_message would return the same exact message. Not only does #next_message not do what the method name suggests (it gets the first message in a list, rather than actually grabbing the next message), but also breaks some functionality like message skipping.

An alternative solution to this is to get a list of all messages of a particular type, store them in memory, and then iterate through them in controllers. This allows for a much easier implementation of alternative storage backends, as well as allowing the skipping of messages to actually work.
Rename mailbox[:greeting_message] to mailbox[:greeting]