Add asynchronous methods to CrateClient for crate-scala

Allows the caller to configure the ActionListener by overriding the
onResponse and onFailure methods