Fixes #135 where Glide would hard fail for no home directory

Also fixed #137 where some messages did not end in \n
diff --git a/.gitignore b/.gitignore
index 19b111a..0b9c8d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,4 +4,5 @@
 *.a
 *.sublime-project
 *.sublime-workspace
-dist/
\ No newline at end of file
+dist/
+.DS_Store
diff --git a/cmd/cache.go b/cmd/cache.go
index 0a976e5..bbb9c7b 100644
--- a/cmd/cache.go
+++ b/cmd/cache.go
@@ -13,15 +13,22 @@
 	"github.com/Masterminds/cookoo"
 )
 
+var cacheEnabled = true
+
+var errCacheDisabled = errors.New("Cache disabled")
+
 // EnsureCacheDir Creates the $HOME/.glide/cache directory (unless home is
 // specified to be different) if it does not exist.
 func EnsureCacheDir(c cookoo.Context, p *cookoo.Params) (interface{}, cookoo.Interrupt) {
 	home := p.Get("home", "").(string)
 	if home == "" {
-		return nil, errors.New("No home directory set to create")
+		cacheEnabled = false
+		Warn("Unable to locate home directory")
+		return false, nil
 	}
 	err := os.MkdirAll(filepath.Join(home, "cache", "info"), os.ModeDir|os.ModePerm)
 	if err != nil {
+		cacheEnabled = false
 		Warn("Error creating Glide directory %s", home)
 	}
 	return false, nil
@@ -69,6 +76,9 @@
 }
 
 func saveCacheRepoData(key string, data cacheRepoInfo, location string) error {
+	if !cacheEnabled {
+		return errCacheDisabled
+	}
 	data.LastUpdate = time.Now().String()
 	d, err := json.Marshal(data)
 	if err != nil {
@@ -87,6 +97,9 @@
 }
 
 func cacheRepoData(key, location string) (*cacheRepoInfo, error) {
+	if !cacheEnabled {
+		return &cacheRepoInfo{}, errCacheDisabled
+	}
 	c := &cacheRepoInfo{}
 	p := filepath.Join(location, "cache", "info", key+".json")
 	f, err := ioutil.ReadFile(p)
diff --git a/cmd/get_imports.go b/cmd/get_imports.go
index fa55356..35baee6 100644
--- a/cmd/get_imports.go
+++ b/cmd/get_imports.go
@@ -304,7 +304,10 @@
 					if err == nil {
 						Debug("Saving default branch for %s", repo.Remote())
 						c := cacheRepoInfo{DefaultBranch: branch}
-						saveCacheRepoData(key, c, home)
+						err = saveCacheRepoData(key, c, home)
+						if err == errCacheDisabled {
+							Debug("Unable to cache default branch because caching is disabled")
+						}
 					}
 				}
 
@@ -357,7 +360,9 @@
 						Debug("Saving default branch for %s", repo.Remote())
 						c := cacheRepoInfo{DefaultBranch: branch}
 						err = saveCacheRepoData(key, c, home)
-						if err != nil {
+						if err == errCacheDisabled {
+							Debug("Unable to cache default branch because caching is disabled")
+						} else if err != nil {
 							Debug("Error saving %s to cache. Error: %s", repo.Remote(), err)
 						}
 					}
@@ -406,7 +411,9 @@
 			Debug("Saving default branch for %s", repo.Remote())
 			c := cacheRepoInfo{DefaultBranch: branch}
 			err = saveCacheRepoData(key, c, home)
-			if err != nil {
+			if err == errCacheDisabled {
+				Debug("Unable to cache default branch because caching is disabled")
+			} else if err != nil {
 				Debug("Error saving %s to cache. Error: %s", repo.Remote(), err)
 			}
 		}
@@ -605,7 +612,6 @@
 
 // Some repos will have multiple branches in them (e.g. Git) while others
 // (e.g. Svn) will not.
-// TODO(mattfarina): Add API calls to github, bitbucket, etc.
 func defaultBranch(repo v.Repo, home string) string {
 
 	// Svn and Bzr use different locations (paths or entire locations)
@@ -666,7 +672,12 @@
 		db := gh["default_branch"].(string)
 		if kerr == nil {
 			d.DefaultBranch = db
-			saveCacheRepoData(key, d, home)
+			err := saveCacheRepoData(key, d, home)
+			if err == errCacheDisabled {
+				Debug("Unable to cache default branch because caching is disabled")
+			} else if err != nil {
+				Debug("Error saving %s to cache. Error: %s", repo.Remote(), err)
+			}
 		}
 		return db
 	}
@@ -695,7 +706,12 @@
 		db := bb["name"].(string)
 		if kerr == nil {
 			d.DefaultBranch = db
-			saveCacheRepoData(key, d, home)
+			err := saveCacheRepoData(key, d, home)
+			if err == errCacheDisabled {
+				Debug("Unable to cache default branch because caching is disabled")
+			} else if err != nil {
+				Debug("Error saving %s to cache. Error: %s", repo.Remote(), err)
+			}
 		}
 		return db
 	}
diff --git a/cmd/msg.go b/cmd/msg.go
index d2f6787..a054cbf 100644
--- a/cmd/msg.go
+++ b/cmd/msg.go
@@ -65,9 +65,9 @@
 func ErrMsg(msg string, args ...interface{}) {
 	if len(args) == 0 {
 		fmt.Fprint(os.Stderr, msg)
-		return
+	} else {
+		fmt.Fprintf(os.Stderr, msg, args...)
 	}
-	fmt.Fprintf(os.Stderr, msg, args...)
 
 	// Get rid of the annoying fact that messages need \n at the end, but do
 	// it in a backward compatible way.
@@ -81,9 +81,9 @@
 func Msg(msg string, args ...interface{}) {
 	if len(args) == 0 {
 		fmt.Fprint(os.Stderr, msg)
-		return
+	} else {
+		fmt.Fprintf(os.Stderr, msg, args...)
 	}
-	fmt.Fprintf(os.Stderr, msg, args...)
 
 	// Get rid of the annoying fact that messages need \n at the end, but do
 	// it in a backward compatible way.