Use case insensitive path comparison on Windows

The drive letter case would differ on Windows, causing
attempted vendoring of sub packages.

Fixes #290 : `glide update` vendors current repo if it contains subpackages
diff --git a/dependency/resolver.go b/dependency/resolver.go
index dc88f62..88b610a 100644
--- a/dependency/resolver.go
+++ b/dependency/resolver.go
@@ -2,6 +2,7 @@
 
 import (
 	"container/list"
+	"runtime"
 	//"go/build"
 	"os"
 	"path/filepath"
@@ -216,6 +217,14 @@
 	return r.resolveImports(l)
 }
 
+// dirHasPrefix tests whether the directory dir begins with prefix.
+func dirHasPrefix(dir, prefix string) bool {
+	if runtime.GOOS != "windows" {
+		return strings.HasPrefix(dir, prefix)
+	}
+	return len(dir) >= len(prefix) && strings.EqualFold(dir[:len(prefix)], prefix)
+}
+
 // ResolveLocal resolves dependencies for the current project.
 //
 // This begins with the project, builds up a list of external dependencies.
@@ -280,7 +289,7 @@
 			case LocUnknown, LocVendor:
 				l.PushBack(filepath.Join(r.VendorDir, filepath.FromSlash(imp))) // Do we need a path on this?
 			case LocGopath:
-				if !strings.HasPrefix(info.Path, r.basedir) {
+				if !dirHasPrefix(info.Path, r.basedir) {
 					// FIXME: This is a package outside of the project we're
 					// scanning. It should really be on vendor. But we don't
 					// want it to reference GOPATH. We want it to be detected