Add custom service for Gists, use GitHub API and set additional metainfo.

It populates Gist-specific metainfo like ProjectURL, BrowseURL for files and root folder, and LineFmt.
It uses GitHub API rather than git commands (thus it'll work in Google App Engine).
Subdirectories are not yet implemented/tested. **Edit:** I verified that they're handled properly. They are ignored, but it's okay because gists won't have folders. See comment [below](https://github.com/garyburd/gosrc/pull/1#issuecomment-29146369).

This should fix garyburd/lintapp#2.

I used this program to test my changes:

```Go
package main

import (
	"github.com/shurcooL/go-goon"
	"github.com/garyburd/gosrc"
	"net/http"
)

func main() {
	goon.Dump(gosrc.Get(http.DefaultClient, "gist.github.com/7576154.git", ""))
}
```

Here is the diff of running the above test program before and after this PR:

```diff
@@ -1,13 +1,11 @@
-2013/11/23 14:36:22 git ls-remote --heads --tags http://gist.github.com/7576154.git
-2013/11/23 14:36:26 git clone http://gist.github.com/7576154.git /var/folders/tw/kgz4v2kn4n7d7ryg5k_z3dk40000gn/T/gddo/gist.github.com/7576154.git
 (*gosrc.Directory)(&gosrc.Directory{
 	ImportPath:   (string)("gist.github.com/7576154.git"),
 	ResolvedPath: (string)("gist.github.com/7576154.git"),
 	ProjectRoot:  (string)("gist.github.com/7576154.git"),
 	ProjectName:  (string)("7576154"),
-	ProjectURL:   (string)(""),
+	ProjectURL:   (string)("https://gist.github.com/7576154"),
 	VCS:          (string)("git"),
-	Etag:         (string)("http-603f964e7683a4f0ea2d6bfa2d4ec200075c090b"),
+	Etag:         (string)("603f964e7683a4f0ea2d6bfa2d4ec200075c090b"),
 	Files: ([]*gosrc.File)([]*gosrc.File{
 		(*gosrc.File)(&gosrc.File{
 			Name: (string)("main.go"),
@@ -364,11 +362,11 @@
 				(uint8)(125),
 				(uint8)(10),
 			}),
-			BrowseURL: (string)(""),
+			BrowseURL: (string)("https://gist.github.com/7576154#file-main-go"),
 		}),
 	}),
 	Subdirectories: ([]string)([]string{}),
-	BrowseURL:      (string)(""),
-	LineFmt:        (string)(""),
+	BrowseURL:      (string)("https://gist.github.com/7576154"),
+	LineFmt:        (string)("%s-#L%d"),
 })
 (interface{})(nil)
```