Command Interface

This isn't ready for merge yet, PRing for code review/comments.
idiomatic to use 

```Go
cmd, found = c.subcommands[i]
if !found { 
  ... 
}
```