X-Request-Id header

Mechanism for client to automatically generate a 'X-Request-Id` header for each call to the API.
- a new UUID is generated for each request
- `request_id` UUID may be locked in a session for multiple calls on the client 
- `request_id` UUID may be supplied and locked in a session for applications that already generate a UUID
- `client_id` can be configured in `setup!` to be appended to the `request_id` to help identify sources
- `ActionDispatch::RequestId` middleware extended to allow `\`, `+`, and `=` in its value
- `ClientError` will identify the `request_id` if present from the response
- Added tests and docs

Part of #28