factory: improve error message on unsatisfied dependency

+ fix bad diagnosis of hot / cold circular dependencies in some cases
errors: review API: use a provided UUIDGenerator instead of "current" one [BREAKING]

This required to introduce a RestxErrors component and use it to create RestxError,
instead of using a static method.

So when you used to do `RestxError.on(sg)` you now have to do `errors.on(sg)` where
`errors` is a `RestxErrors` field that you get injected.
core: review UUIDGenerator management [BREAKING]

- UUIDGenerator is now just an interface
- there should be a single UUIDGenerator per Factory in default restx core, making much easier to get injected
- this implies the "given" syntax has changed: use `-uuids: ["123456789"]`, no more splitting by uuid usage
(cherry picked from commit 883a325)
core: recording mode can now only be used with per request factory loading

Now that autostartable components can make some components loaded only once even in per request loading mode, we don't really need it anymore.

This may also allow to get rid of the context local scope for recording, we should be able to use thread local with client affinity if we install recorders in same thread as request processing.
core: allow to easily test authenticated requests with HttpTestClient