Create CascadingClient for fallbacking clients

The intended use case is that a company (like Spotify) is going to
switch over from a slow HdfsClient to a much faster SnakebiteHdfsClient.
To avoid surprises if say the SnakebiteHdfsClient can't handle some
corner case, then a given fallback will be used.

Example instantiation:

    client = CascadingClient([SnakebiteHdfsClient(), HdfsClient()])
Merge pull request #395 from Tarrasch/chained-hdfs-client

Chainable hdfs-clients