Support for CMake

This PR adds a new element in the manifest named `cmake`, similar to `build`. This entry is an array, so you can specify multiple directories which contain `CMakeLists.txt`.

```rust
cmake = ["dir1", "dir2"]
```

For non-primary targets, CMake creates a build directory in a temporary directory which is destroyed at the end of the compilation.
For primary targets, CMake's build directories are `target/cmake0`, `target/cmake1`, etc. so that it doesn't take too long to rebuild.