Extra context: API + CLI

Fixes #12
Synthesizes parts of: #75, #100, #116, #161 and #199.
Thanks @fcurella, @aventurella, @emonty, @schacki, @ryanolson!
I added cleanup for the extra_context repo_name test in 3fcf3bc71292fc4ef1069ed0af8dbedb6d9590d3