Command Interface

This isn't ready for merge yet, PRing for code review/comments.
this doesn't handle options like:

```
cmd --optkey optval arg1 arg2
```

Which may be fine, maybe we should be moving away from those. Wonder what docker does, and how happy people are with it.