Extracted JSON client functions into seperate package

Closes #317 
Skip the else.

```
if u.Scheme == "discoverd+http" {
	return newDiscoverdClient(u, key)
}
return newClient(u.Host, key, u.String(), http.DefaultClient)
```