Less juggling of constants, more ruby methods. Information that requires
shelling out (e.g. GitHub username, token, repo name ...) is now loaded
on demand, meaning no shelling out for commands that don't need it.
Tests are now safer; they are prevented from shelling out to get info.
All test data is stubbed.
New `github_url` method builds needed URLs while keeping sensible defaults.
Commands that open the browser (`compare`, `browse`) now share a bit of
underlying implementation and recognize the same flags (`-p`, `-u`).