improve header readability
implement counter traces

As described in the trace-event file format:

https://code.google.com/p/trace-viewer/wiki/TraceEventFormat#Counters

Counters

C phase events are used for tracking a value or multiple values over time. This
tracks a value moving from 0, to 10, back to zero, over a 20 microsecond time period:

{name: 'ctr', args: {'value': 0}, pid: 1, ts: 0, cat: 'foo', tid: 1, ph: 'C'},
{name: 'ctr', args: {'value': 10}, pid: 1, ts: 10, cat: 'foo', tid: 1, ph: 'C'},
{name: 'ctr', args: {'value': 0}, pid: 1, ts: 20, cat: 'foo', tid: 1, ph: 'C'}

Counters can have multiple values per sample. When that happens, they are considered
to be "part of a whole." E.g.

{name: 'ctr', args: {'value1': 0, 'value2': 7}, pid: 1, ts: 0, cat: 'foo', tid: 1, ph: 'C'},
{name: 'ctr', args: {'value1': 10, 'value2': 4}, pid: 1, ts: 10, cat: 'foo', tid: 1, ph: 'C'},
{name: 'ctr', args: {'value1': 0, 'value2': 1 }, pid: 1, ts: 20, cat: 'foo', tid: 1, ph: 'C'}

In this case, value1 and value2 will be shown as a stacked area chart in the UI.
Allow traces with three parameters
windows compilation
make sure code is c89 conformant
squashing more warnings
Merge remote-tracking branch 'origin/F-NewEvents'

* origin/F-NewEvents:
  squashing more warnings
  make sure code is c89 conformant
  windows compilation
  Allow traces with three parameters
  implement counter traces
  improve header readability