track: Set which remote branch a local branch tracks

Usage:
  eg track (--show [LOCAL_BRANCH] | --show-all)
  eg track [LOCAL_BRANCH] REMOTE_TRACKING_BRANCH
  eg track --unset [LOCAL_BRANCH]

Description:
  eg track helps manage which remote branches your local branches
  track.  Having a local branch track a remote branch means that when
  the local branch is the active branch, that the corresponding remote
  branch is the default push or pull location for eg push or eg pull.

  There are three different things eg track can do, each corresponding to
  one of the usage forms listed above: list which remote branch a local
  branch tracks, make a local branch track some remote branch, or make a
  local branch no longer track any remote branch.

  If LOCAL_BRANCH is not specified, the currently active branch is
  assumed.

Examples:
  Show which remote branches all local branches are tracking
     $ eg track --show-all

  Show which remote branch the local branch 'stable' tracks
     $ eg track --show stable

  Make your currently active branch track the 'magic' branch of the 'jim'
  repository (see 'eg help remote' for setting up nicknames like 'jim' for
  remote repositories)
      $ eg track jim/magic

  Make your branch 'bugfix' track the 'master' branch of the 'origin'
  repository (note that 'origin' is the repository you cloned from, unless
  you've explicitly changed that using the eg remote command or some other
  low-level means):
      $ eg track bugfix origin/master

  Have your 'random-changes' branch stop tracking any remote branch:
      $ eg track --unset random-changes

Differences from git track:
  eg track is unique to eg; git does not have a similar command.