Add async save method

This follows a similar pattern to the async toBuffer method that was added not too long ago.  If a callback is provided as the second argument, it will execute async.