Command Interface

This isn't ready for merge yet, PRing for code review/comments.
Yes, true. 

The issue is golang as a whole (and many tools built with it) are pushing now for `-key=val` and i'm not sure this is a bad idea. It breaks convention but it may be TRTTD. Maybe ought to look into how docker and other tools do this.