Data object Shard::Ref

Replaces the half-way Shard::ShardRecord, and all of the methods called via (username, shard, version, …) to just use a ref instead
Pulled list CLI command into its own class
Added an "open in browser" view CLI command
Moved saving logic into the saver

…and out of the loader
Fetch should use shard refs
Moved the github login info out into a data object

Converted CLI::Config to use that
Added an API object at the Shard level

Have the library files talk to that instead of Octokit directly