Command Interface

This isn't ready for merge yet, PRing for code review/comments.
can make this struct implement the `error` interface by adding:

```Go
func (e *Error) Error() string {
  return fmt.Sprintf("%d error: %s", e.Code, e.Message)
}
```
http://golang.org/pkg/builtin/#error

And then just use it directly in the Response struct