Adds valid cassette path assertion with better error message.
Refactors storages to handle the cassette path and cassette name themselves.

In order to be more extensible for upcoming new storages, the storage themselves
should be able to distinguish between the cassette path (that could be a DSN too)
and the cassette name.
Merge pull request #53 from php-vcr/storage-refactoring

Storage refactoring