fix #419 improve tracing to file by file

Instead of one Trace.xml, we are now trace request per file.   We also trace (append) as we go.  This allows us to identify any terminated pending requests.   I will do a bit more perf testing see if we regress any.

The file content is xml (not changed from format within trace.xml).   The file name is as follow (should be self explained).   The running number after the instance name is to avoid collision (two concurrent requests). 

```
2014-11-13T08-19-46_d43925_001_Startup_GET_info-refs.xml
2014-11-13T08-19-46_d43925_002_GET_info-refs_200.xml
2014-11-13T08-19-50_d43925_003_POST_git-receive-pack_200.xml
2014-11-13T08-19-54_d43925_001_kudu.exe.xml
2014-11-13T08-20-50_d43925_005_Shutdown.xml
2014-11-13T08-20-54_d43925_002_GET_api-deployments_200.xml
```

For pending requests, we use below format.  We rename it when it completes.

```
2014-11-13T08-21-30_d43925_003_POST_git-receive-pack_pending.xml
2014-11-13T08-21-32_d43925_004_kudu.exe_pending.xml
```

We keep at most 200 files and low watermark at 150 files (when we clean up).
I will change those strings to constants and use them for both writing and comparison.

- "Incoming Request"
- "Startup Request"
- "Process Shutdown"
- "Executing external process"