Extracted JSON client functions into seperate package

Solves #317 
NewClient doesn't have a `dial`, so no, maybe?