BREAKING CHANGE: `Client::new()` now returns a `Result`.
BREAKING CHANGE: `APIError` is renamed to `ApiError`.