Fix blobstore compilation on macOS and MSVC

macOS:

    src/blobstore.cc:25:73: error: typename specifier refers to non-type member 'impl' in 'org::blobstore::BlobstoreClient'
    BlobstoreClient::BlobstoreClient() : impl(new typename BlobstoreClient::impl) {}
                                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
    cxxbridge/crate/demo/include/blobstore.h:20:25: note: referenced member 'impl' is declared here
      std::shared_ptr<impl> impl;
                            ^

MSVC:

    src/blobstore.cc(25): error C2061: syntax error: identifier 'impl'
diff --git a/demo/src/blobstore.cc b/demo/src/blobstore.cc
index a75affc..0036a32 100644
--- a/demo/src/blobstore.cc
+++ b/demo/src/blobstore.cc
@@ -13,7 +13,7 @@
 //
 // In reality the implementation of BlobstoreClient could be a large complex C++
 // library.
-class BlobstoreClient::impl {
+class BlobstoreClient::Impl {
   friend BlobstoreClient;
   using Blob = struct {
     std::string data;
@@ -22,7 +22,7 @@
   std::unordered_map<uint64_t, Blob> blobs;
 };
 
-BlobstoreClient::BlobstoreClient() : impl(new typename BlobstoreClient::impl) {}
+BlobstoreClient::BlobstoreClient() : impl(new BlobstoreClient::Impl) {}
 
 // Upload a new blob and return a blobid that serves as a handle to the blob.
 uint64_t BlobstoreClient::put(MultiBuf &buf) const {