Extra context: API + CLI

Fixes #12
Synthesizes parts of: #75, #100, #116, #161 and #199.
Thanks @fcurella, @aventurella, @emonty, @schacki, @ryanolson!
Sure, it's not a big deal. If you feel like taking a look at #262 (which is the input testing patch I mentioned, and which I guess counts as the "subsequent patch"...) that'd be nice ;-) No rush, though.