Use ConcurrentSkipListMap for transient blobstore.

The current implementation uses a ConcurrentHashMap for storing key
value pairs in the Transient blobstore. LocalAsyncBlobStore.list has to
fetch all the blobs from this map and then return a subset based on
the marker. Instead this change uses a ConcurrentSkipListMap which has
natural ordering and sends the marker down to TransientStorageStrategy
for more efficient enumeration.

Fixes #1561.