Snapshot/Restore API: Add Google Cloud Storage support

Snapshot/Restore API: Add Google Cloud Storage support

Adds the ability to snapshot/restore indices to/from the Google Cloud Storage platform. This functionnality also works when the plugin is installed on a Compute Engine instance. The authorization process is based on "service account" files, which is the recommanded way to auhenticate application against the GCS service. This implementation uses the Google Storage API (v0.19.0), and the uploading of blobs are executed in a background thread.

Closes #11
Why not simply
```
    {
        try {
            done.await(); // Or done.await(10, TimeUnit.SECONDS) if we don't want it to be stuck forever
        } catch (InterruptedException e) {
            Thread.currentThread().interrupt();
        }
    }
```