Add asynchronous methods to CrateClient for crate-scala

Allows the caller to configure the ActionListener by overriding the
onResponse and onFailure methods
Added a test for async client
Merge pull request #945 from alexanderjarvis/master

Add asynchronous methods to CrateClient for crate-scala