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.