First pass on moving the library to support a non-blocking data-handler trait.

Additional Comments:
All tests passing, but probably needs a closer inspection particularly on some of the grants that throw exceptions as I don't believe those are currently being tested for each exception type.