ClientOptions fields shouldn't be public

Changed ClientOptions access modifiers so we cannot set manually the fields.

I left out some setters for "throwErrors" and "debug" as it might be handy to set activate them manually somewhere without resetting all the API.

Added and a constructor allowing to set the base address etc. I leave you decide whether it's useful or not.