Scan source code when no package manager file is found.

If there are no GPM, Godeps, Glide or GB files present in a project,
this will now scan the source and attempt to derive the dependencies
like `go get`.

Addresses #50
diff --git a/cmd/flatten.go b/cmd/flatten.go
index 84ed576..5de4bc8 100644
--- a/cmd/flatten.go
+++ b/cmd/flatten.go
@@ -211,9 +211,55 @@
 }
 
 // mergeGuess guesses dependencies and merges.
+//
+// This always returns true because it always handles the job of searching
+// for dependencies. So generally it should be the last merge strategy
+// that you try.
 func mergeGuess(dir, pkg string, deps map[string]*Dependency) ([]string, bool) {
 	Info("%s manages its own dependencies.", pkg)
-	return []string{}, false
+	buildContext, err := GetBuildContext()
+	if err != nil {
+		Warn("Could not scan package %q: %s", pkg, err)
+		return []string{}, false
+	}
+
+	res := []string{}
+
+	if _, err := os.Stat(dir); err != nil {
+		Warn("Directory is missing: %s", dir)
+		return res, true
+	}
+
+	d := walkDeps(buildContext, dir, pkg)
+	for _, name := range d {
+		name, _ := NormalizeName(name)
+		if _, ok := deps[name]; ok {
+			Debug("====> Seen %s already. Skipping", name)
+			continue
+		}
+
+		found := findPkg(buildContext, name, dir)
+		switch found.PType {
+		case ptypeUnknown:
+			Debug("✨☆ Undownloaded dependency: %s", name)
+			nd := &Dependency{Name: name}
+			deps[name] = nd
+			res = append(res, name)
+		case ptypeGoroot, ptypeCgo:
+			break
+		default:
+			// We're looking for dependencies that might exist in $GOPATH
+			// but not be on vendor. We add any that are on $GOPATH.
+			if _, ok := deps[name]; !ok {
+				Debug("✨☆ GOPATH dependency: %s", name)
+				nd := &Dependency{Name: name}
+				deps[name] = nd
+				res = append(res, name)
+			}
+		}
+	}
+
+	return res, true
 }
 
 // mergeDeps merges any dependency array into deps.
diff --git a/glide.go b/glide.go
index 130a951..f735b7a 100644
--- a/glide.go
+++ b/glide.go
@@ -277,18 +277,14 @@
 	stored in 'vendor/foo/bar/vendor'. This behavior can be disabled with
 	'--no-recursive'.
 
-	If the '--import' flag is specified, Glide will also import Godep and GPM
-	files as it finds them in dependencies. It will create a glide.yaml file
-	from the Godeps data, and then update. This has no effect if '--no-recursive'
-	is set.
+	Glide will also import Godep, GB, and GPM files as it finds them in dependencies.
+	It will create a glide.yaml file from the Godeps data, and then update. This
+	has no effect if '--no-recursive' is set.
 
 	If the '--update-vendored' flag (aliased to '-u') is present vendored
 	dependencies, stored in your projects VCS repository, will be updated. This
 	works by removing the old package, checking out an the repo and setting the
 	version, and removing the VCS directory.
-
-	If the '--delete-flatten' flag is present, Glide will remove any dependencies
-	marked flatten within dependencies.
 	`,
 			Flags: []cli.Flag{
 				cli.BoolFlag{
@@ -300,10 +296,6 @@
 					Usage: "Disable updating dependencies' dependencies.",
 				},
 				cli.BoolFlag{
-					Name:  "import",
-					Usage: "When updating dependencies, convert Godeps (GPM, Godep) to glide.yaml and pull dependencies",
-				},
-				cli.BoolFlag{
 					Name:  "force",
 					Usage: "If there was a change in the repo or VCS switch to new one. Warning, changes will be lost.",
 				},
@@ -311,10 +303,6 @@
 					Name:  "update-vendored, u",
 					Usage: "Update vendored packages (without local VCS repo). Warning, changes will be lost.",
 				},
-				cli.BoolFlag{
-					Name:  "delete-flatten",
-					Usage: "Delete flattened vendor packages.",
-				},
 			},
 			Action: func(c *cli.Context) {
 				cxt.Put("deleteOptIn", c.Bool("delete"))