Basic support for loading catalog with custom coordinator and storage backend

- added `coordinator_for_url` and `storage_for_url` helper methods to find the right storage class for a give url. These can probably be improved.
- renamed `validate_url` to `valid_url`
- added url validate to StorageBackends
- integrated custom config loading with `catalog:list` command

`.zinc` looks like this:

```
[services.local-dev]

coordinator_url = "redis://localhost:6379"
storage_url = "s3://zinc-demo"
aws_key = "blah"
aws_secret = "secretblah"

[bookmarks.lessons-dev]

catalog_id = "com.mindsnacks.lessons"
service = "local-dev"