Support for status message events that have a begin and end.

Sometimes we want to announce the beginning and ending of a long running
task - e.g. collecting build settings via -showBuildSettings, installing
an app in the simulator for app tests, trying to search for a target
via -find-target.

We'd like to be able to announce the beginning of a task and get output like ...

```
[Info] Doing some thing...
```

And, when the task finishes have the same line rewritten to show ...

```
[Info] Doing some thing...  (100 ms)
```

This adds `ReportStatusMessageBegin()` and `ReportStatusMessageEnd()` to accomplish this, and changes a few ReportMessage() call sites to use this.  For things that don't have a begin and end, use `ReportStatusMessage()` the same way we used to used `ReportMessage()`.