Restructured repository with dependent packages as Git submodules

This fixes the package versioning problem: "go get" always fetches the
latest revision, so we can't get repeatable builds of sync_gateway or
defend against it breaking from someone else's checkin into another
repository.

Instead of using "go get", we now use git to fetch specific revisions
of the packages we need, as submodules. This populates "vendor/src", and
we can tell Go to use "vendor" as a GOPATH entry so it finds the
packages.

We also treat the repository root directory itself as a GOPATH directory
and move the gateway sources into it. That way one can check out this
repository anywhere, and set GOPATH to ".:./vendor" and build.

NOTE: To build, run "build.sh". A regular "go install" or "go build"
won't work because the GOPATH needs to be set up first.

Fixes #68.