gh: Move away from using curl for patches and to GitHub API

:warning: This initially failing PR is an TODO item for `am/apply` commands. We need to switch them over to the GitHub API so that they won't have any external dependencies.

/cc @jingweno
`io.Copy` is a better way do copy from a reader to writer:

```patch
diff --git a/commands/apply.go b/commands/apply.go
index 8521886..8b5d06e 100644
--- a/commands/apply.go
+++ b/commands/apply.go
@@ -3,7 +3,6 @@ package commands
 import (
        "io"
        "io/ioutil"
-       "os"
        "regexp"

        "github.com/github/hub/github"
@@ -94,13 +93,12 @@ func transformApplyArgs(args *Args) {
                }

                idx := args.IndexOfParam(arg)
-               patchFile, err := ioutil.TempFile(os.TempDir(), "hub")
+               patchFile, err := ioutil.TempFile("", "hub")
                utils.Check(err)

-               bytes, err := ioutil.ReadAll(patch)
+               _, err = io.Copy(patchFile, patch)
                utils.Check(err)

-               patchFile.Write(bytes)
                patchFile.Close()
                patch.Close()
```

Also `ioutil.TempFile` [uses `os.TempDir()` by default](http://golang.org/src/pkg/io/ioutil/tempfile.go?s=1288:1345#L49) already.