Allow executing an arbitrary command before building

The implemented syntax is:

```toml
[project]

build = "foo"
```

Currently the command is split on spaces as a FIXME which needs to use proper escaping. Otherwise the command is run just before `rustc` is invoked. Along the way I cleaned up some various formatting, added a travis config, fixed some test running bugs, etc.
I have mostly been taking T: Str for this kind of method. We should likely discuss a good general strategy. Ideally it would be possible to take either a String or a slice, and consume the String or use the slice.