add repository protocol & better CLI

Add a repository protocol and two implementations: local (filesystem
based), and github.  codeq/core has been changed to use instances of the
protocol.

Additionally, this commit includes a better CLI. Now the path/url of the
repository gets passed in at runtime instead of relying on being run
from the correct working directory.
add ability to import tags and branches into codeq