Improve argument validation for Url::fromString()