treat root packages consistently with deps

We avoid duplicate packages according to the repo root.
This also needs to happen for packages in the root set,
otherwise a repo with no go files in its root (for
example a package foo for which 'go list foo/...' doesn't
include foo itself) can have its internal dependencies
wrongly treated as external dependencies.
copy code for full repo of each dependency

Fixes #27.
fix typo in commentary
fix for windows
list packages rather than repos

This small edit is a significant conceptual change.
Instead of listing one entry per dependency repo,
we list one entry per disjoint import path tree.

This means we can list the same repo more than once
in the manifest, but copy less code into the local
workspace. This happens when a repo has several
packages, not all of which are dependencies.

For example, if the project depends on packages A
and B in repo R, we now list both R/A and R/B, even
though they're in the same repo. However, if the
project depends on two packages P and P/Q, we still
list only P.
document compiler version requirement; fixes #38
Clarify Godep vs GOPATH in documentation

The immediate impetus for these changes was that
the `restore` command had unclear help text.
Clarifying it required some matching changes
elsewhere.

Note that the verb "check out" in `restore`'s
Long usage text is also used in a similar context
in `go help get`:

"When checking out or updating a package, get
looks for a branch or tag that matches the locally
installed version of Go."

Fixes #33.