Catch invalid/missing URLs in server config JSON

url.Parse() accepts garbage like "" or "foo bar" without returning an
error. The resulting URLs don't work and cause errors later on, when
it's hard to tell where they came from. I'm working around this by
checking the parsed URL object for a non-empty Scheme component.
Added a utility function ParseURL that does this.
(See issue couchbase/sync_gateway#147)