Add URL validation

Currently, for end-user "requests" params we define:

requests: Sequence[str | BaseRequestData | Request]

which, unfortunately, matches a single-string request (e.g. requests='https://crawlee.dev') as well.

We could make it more strict and update it to just:

requests: list[str | BaseRequestData | Request]

so static type checkers can let us know in case someone is trying to pass a single string request there.

Or maybe use some custom type for either list, tuple, or set.

Or, add some URL pattern-matching validation, see Pydantic's Network Types.