Addressed two issues:
Issue #42 (bug) - CallExecutor throws a NullPointerException if a call returns a null value.
Issue #41 (enhancement) - RetriesExhaustedException will now have a populated cause. It will be populated with the last exception that occurred before all retries were exhausted.